Google App EngineにJerseyアプリをデプロイするときに問題が発生しました。ローカルとクラウドの動作が異なります。詳細は次のとおりです。Google App Engineの動作がローカルの開発環境とクラウドで異なる理由はありますか?
JerseyにCustomMapperProviderを追加します。次のように
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> resources = new HashSet<Class<?>>();
resources.add(CustomMapperProvider.class);
return resources;
}
そしてCustomMapperProviderは次のとおりです。
public class CustomMapperProvider implements ContextResolver<ObjectMapper> {
@Override
public ObjectMapper getContext(Class<?> type) {
/** Generate Default mapper*/
ObjectMapper mapper = new ObjectMapper();
SimpleModule module = new SimpleModule();
module.addDeserializer(User.class, new UserDeserializer());
module.addSerializer(User.class, new UserSerializer());
mapper.registerModule(module);
return mapper;
}
}
このCustomeMapperProviderはユーザークラスJSONのカスタム生成のためです。
問題は、私はローカルの開発環境でアプリケーションをテストし、UserSerializerはJSON生成のための仕事であるということです。しかし、私はそれをクラウドにデプロイしました。その結果は異なります。結果によると、カスタムJSONシリアライザによってJSONが生成されないことがわかりました。
Google App Engineとクラウドコンピューティングとローカル開発環境の間には何か制限がありますか?
いいえ、私のローカル開発環境はFedora 24です。問題を再現するために後で小さなデモを作成しましょう。 –