到目前为止,我已经使用了泽西岛,我正在用JSON完成我的第一个实现。
我在使用Payara,所以我和泽西和亚森一起工作。我有一个问题,因为序列化日期总是包含"UTC“后缀。
我已经设法在DTO中对date属性使用了一个注释。但是我想在全局(在JAX应用程序配置?)中配置它,而不是在每个date属性上重复我自己。这有可能吗?到目前为止我还没有找到任何东西..。
附带问题:我假设可以去掉这个"UTC“后缀,因为它破坏了所有试图解析日期的客户端。有什么想法吗?
发布于 2019-12-01 13:54:06
多亏了这个Github问题,我才能解决我的问题。下面是我最后在代码中所写的内容:
JSONConfigurator.java:
import javax.json.bind.Jsonb;
import javax.json.bind.JsonbBuilder;
import javax.json.bind.JsonbConfig;
import javax.json.bind.config.PropertyNamingStrategy;
import javax.ws.rs.ext.ContextResolver;
import javax.ws.rs.ext.Provider;
@Provider
public class JSONConfigurator implements ContextResolver<Jsonb> {
@Override
public Jsonb getContext(Class<?> type) {
JsonbConfig config = getJsonbConfig();
return JsonbBuilder
.newBuilder()
.withConfig(config)
.build();
}
private JsonbConfig getJsonbConfig() {
return new JsonbConfig()
.withDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX", null);
}
}和:
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
import java.util.HashSet;
import java.util.Set;
@ApplicationPath("/api")
public class ApplicationConfig extends Application {
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> resources = new HashSet<Class<?>>();
addRestResourceClasses(resources);
resources.add(JSONConfigurator.class);
return resources;
}
private void addRestResourceClasses(Set<Class<?>> resources) {
...
}
}https://stackoverflow.com/questions/59117416
复制相似问题