私はJerseyとJacksonをJSONプロバイダとして構築したWebサービスをTomcatアプリケーションサーバーに持っています。JacksonをJSONプロバイダとして使用するようにWildfly 10を設定してください
このアプリケーションをWildfly 10で動作させる必要があります。ジャクソンの注釈を考慮していないWebサービスのレスポンスのほか、すべてがうまくいきます。私が読んだことから、WildflyはJettisonをデフォルトとして使用していました。新しいバージョンではJackson2が使用されています。
RestEasy(Wildfly 10)がJacksonを使用するようにすることが推奨されます。このために、Jackson2とJettisonを除外し、Jackson(META-INF \ jboss-deployment-structure.xml)以下のようになります。
明らかに、これは以前と同じように動作しているため、十分ではありません。 他に何を試すべきですか?
UPDATE:私のアプリケーションが(ジャージーを使用して)TomcatとWildfly(RESTEasyのを使用)の両方で同じように動作するはずですので
、私は自分のアプリケーション内のRESTEasyからジャクソンの使用に頼ることができない、ので、私は」輸入org.codehaus.jackson
です。
だから、私はこのように自分のアプリケーションを登録します。
import javax.ws.rs.core.Application;
public class RestApplication extends Application
{
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> classes = new HashSet<Class<?>>();
classes.add(RestObjectMapperProvider.class);
classes.add(GeneratedService.class);
return classes;
}
}
、残りのオブジェクトマッピングプロバイダ:
import javax.ws.rs.ext.ContextResolver;
import javax.ws.rs.ext.Provider;
import org.codehaus.jackson.map.ObjectMapper;
@Provider
public class RestObjectMapperProvider implements ContextResolver<ObjectMapper>
{
private final ObjectMapper objectMapper;
public RestObjectMapperProvider()
{
this.objectMapper = new ObjectMapper();
this.objectMapper.configure(SerializationConfig.Feature.INDENT_OUTPUT, true);
}
@Override
public ObjectMapper getContext(Class<?> type)
{
return this.objectMapper;
}
}
私はGradleのと私のアプリを構築し、以下のジャクソンの依存関係ですよ。
compile group: 'org.codehaus.jackson', name: 'jackson-jaxrs', version: '1.9.+'
Tomcat(Jersey)の下でアノテーションが考慮されるため、私の推測はi n Wildfly私の除外は考慮されません。どのJSON Providerを検討したかを確認する方法はありますか?
あなたは、ジャージーを使用し続けているか、JAX-RS/RESTEasyのを使用して計画していますか? – teacurran