我有一个基于Wildfly 10.1构建的系统。我想转到Java 8时间API,但我遇到了麻烦。我已确定OffsetDateTime
以取代Calendar
。目前,Wildfly将这些序列化为
{
"offset":
{
"totalSeconds":-25200,
"id":"-07:00",
"rules":
{
"fixedOffset":true,
"transitions":[],
"transitionRules";[]
}
},
"month":"FEBRUARY",
"year":2011,
"hour":0,
"minute":0,
"second":0,
"dayOfMonth":22,
"dayOfWeek":"TUESDAY",
"dayOfYear":53,
"monthValue":2,
"nano":0
}
显然不正确。基于this StackOverflow question,我添加了以下类:
import javax.ws.rs.ext.ContextResolver;
import javax.ws.rs.ext.Provider;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
@Provider
public class JSR310ContextResolver
implements ContextResolver<ObjectMapper>
{
private final ObjectMapper MAPPER;
public JSR310ContextResolver()
{
super();
MAPPER = new ObjectMapper();
MAPPER.registerModule(new JavaTimeModule());
//MAPPER.registerModule(new Jdk8Module());
MAPPER.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
}
@Override
public ObjectMapper getContext(Class<?> arg0)
{
return MAPPER;
}
}
我现在正在ClassNotFoundException
上获得JavaTimeModule
。
我没有使用Maven,我已经确认jackson-datatype-jsr310.jar
存在,它位于\modules\system\layers\base\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\main
之下。我的应用程序打包为EAR。
如何配置Wildfly 10.1以使我的应用程序能够访问此JAR文件?
答案 0 :(得分:0)
我找到了一个答案: 添加
<global-modules>
<module name="com.fasterxml.jackson.datatype.jackson-datatype-jsr310" slot="main"/>
</global-modules>
到
<subsystem xmlns="urn:jboss:domain:ee:4.0">
配置文件的部分。
是否有人知道一种非全局的方法?