2016-02-08 1 views
1

Обновление веб-приложения OSGi/Spring для Jersey 2. В настоящее время все идет на компиляцию и установку штрафа с помощью Jersey 2, но я получаю эту ошибку, когда наши ресурсы доступны:Джерси с 1 по 2 Миграция с использованием пакетов org.codehaus.jettison (MessageBodyWriter не найден для медиа-типа = application/json)

MessageBodyWriter не найдено для типа носителя = применение/JSON, тип = класс org.codehaus.jettison.json.JSONObject, GenericType = класс org.codehaus. jettison.json.JSONObject.

Текущие данные о конфигурации для org.codehaus.jettison.json как «поставщик средств массовой информации» для трикотажа.

• Добавлена ​​зависимость от Джерси-медиа-JSon-отстрелить

• Я указать пакет org.codehaus здесь в web.xml с GlassFish конкретным Init-парам:

<init-param> 
     <param-name>jersey.config.server.provider.packages</param-name> 
     <param-value> 
        org.codehaus.jettison.json, 
        ... 
     </param-value> 
</init-param> 

• Добавлено пакет нашего веб-приложение расслоения BND файл:

org.codehaus.jettison.json,\ 

это показывает, что это успешно импортировать его в консоли OSGi:

Imported packages 

org.codehaus.jettison.json; version="1.3.3" 

Console также показывает пакет который используется в Джерси-медиа-JSON-отстрелить пачке:

packages org.codehaus.jettison.json 
org.codehaus.jettison.json; version="1.3.3"<org.codehaus.jettison.jettison_1.3.3 [121]> 
    org.glassfish.jersey.media.jersey-media-json-jettison_2.22.1 [192]  

Любые идеи, что здесь не хватает для настройки провайдера JSon?

Нужно ли использовать пакеты org.codehaus.jettison, чтобы программная конфигурация работала как поставщик json?

Я задаю правильные вопросы?

спасибо, Том

+0

Am I спрашивая * a * правильный вопрос? – TRC

+0

Я задаю вопрос? – TRC

ответ

0

отстрелить имеет MessageBodyWriterMessageBodyReader и для org.codehaus.jettison.json.JSONObject с. По какой-то причине он не открывается автоматически, даже с версией отброса> 2.9 (по крайней мере, для меня это было так). Может быть, потому, что он не аннотируется @Provider. Что решить этот вопрос для меня, чтобы вручную добавить соответствующий класс к моему ResourceConfig:

register(JettisonObjectProvider.App.class); 

После этого, создавая ответы как

Response.ok(new JSONObject(), MediaType.APPLICATION_JSON).build(); 

работал так же, как с футболкой 1.

Смежные вопросы