我有一个在Wildfly 10.1上构建的系统。我想转到Java 8 time 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;
}
}我现在正在JavaTimeModule上获取一个ClassNotFoundException。我没有使用Maven,我已经验证了jackson-datatype-jsr310.jar是存在的,它在\modules\system\layers\base\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\main下。我的应用程序被打包为EAR。
如何配置Wildfly 10.1以使我的应用程序能够访问这个JAR文件?
发布于 2017-03-22 08:44:21
我找到了一个答案:添加
<global-modules>
<module name="com.fasterxml.jackson.datatype.jackson-datatype-jsr310" slot="main"/>
</global-modules>发送到
<subsystem xmlns="urn:jboss:domain:ee:4.0">部分的配置文件。
有没有人知道有一种非全局的方法可以做到这一点?
https://stackoverflow.com/questions/42940506
复制相似问题