Mam dwa odpoczynku, które chcę zainstalować na Jboss 7.1.1. serwer.Jboss 7.1.1 - Jackson ContextResolver <ObjectMapper> działa tylko na jednym wdrożeniu
Żądania odpoczynku w obu aplikacjach produkują i konsumują Json. Używam dostawcę jackson do serializowania i deserializacji obiektów.
Teraz potrzebuję niestandardowych konfiguracji ObjectMapper dla każdej aplikacji internetowej. Aby rozwiązać ten problem, dodałem klasy @Provider implementujące ContextResolver. Jeden dla każdego projektu. Fe. Jedna z moich klas wygląda następująco:
@provider
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public class JacksonConfig implements ContextResolver<ObjectMapper> {
private final ObjectMapper objectMapper;
public JacksonConfig()
{
objectMapper = new ObjectMapper();
objectMapper.configure(SerializationConfig.Feature.WRAP_ROOT_VALUE, true);
}
@Override
public ObjectMapper getContext(Class<?> objectType) {
return objectMapper;
}
}
Działa dobrze, gdy wdrażam tylko jeden z tych projektów na jboss. Kiedy próbuję wdrożyć oba, tylko pierwszy zainicjowany projekt używa zdefiniowanego objectMapper. Inny nigdy nie wywołuje metody getContext z klasy ContextResolver. Co mogłem zrobić źle?
EDIT !:
Po wielu próbach postanowiłem zmienić metodę parsowania JSON z Jackson do staxon. Miałem nadzieję, że przynajmniej ta metoda zadziała dobrze. Ale nie ... Serializacja działa doskonale w obu wdrożonych aplikacjach. Ale znowu, jboss postanowił użyć jacksona zamiast staxona w procesie deserializacji. Znowu zawsze działa aplikacja, którą nazywam pierwszym po wdrożeniu. Ale drugi używający jacksona (nie mam pojęcia dlaczego ...), który wywołuje wyjątki. Zawsze ...
Czy jest jakiś problem z Jboss? Prawdopodobnie robię coś złego, ale nie mam pojęcia, gdzie. Ktoś ma pomysł, gdzie powinienem wyglądać?
Jest to dokładny przypadek użycia i problem, który mam. I jeden z powodów, dla których zaczynam preferować .net i lub apple development – NimChimpsky