RESTEasy: не удалось найти писатель для типа содержимого / типа json

У меня есть успокаивающая служба (сообщение), которая потребляет (application / json) и производит (application / json). Единственный параметр для этой службы - аннотированный объект java.

Я использую org.jboss.resteasy.client.ClientRequest для отправки запроса в службу. Однако я получаю это исключение на стороне клиента и исключение:

не удалось найти писатель для типа содержимого / типа json.

Означает ли это, что мне не хватает некоторых библиотечных jar-файлов или мне нужно написать собственный писатель для application / json?

Пользуюсь рестайлингом 2.3.3.Final

Вот различные зависимости, которые я добавил в свой pom, которые, по моему мнению, вероятно связаны:

    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jaxrs</artifactId>
        <version>2.3.3.Final</version>
    </dependency>

    <dependency>
        <groupId>com.fasterxml.jackson.jaxrs</groupId>
        <artifactId>jackson-jaxrs-json-provider</artifactId>
        <version>2.0.5</version>
    </dependency>

    <dependency>
       <groupId>org.jboss.resteasy</groupId>
       <artifactId>resteasy-jaxb-provider</artifactId>
       <version>2.3.4.Final</version>
    </dependency>

    <dependency>
       <groupId>org.jboss.resteasy</groupId>
       <artifactId>resteasy-jackson-provider</artifactId>
       <version>2.3.4.Final</version>
    </dependency>

    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-core-asl</artifactId>
        <version>1.3.0</version>
    </dependency>

    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-mapper-asl</artifactId>
        <version>1.3.0</version>
    </dependency>

person tamuren    schedule 16.01.2013    source источник
comment
возможный дубликат stackoverflow .com / questions / 3630827 /   -  person Sajan Chandran    schedule 16.01.2013
comment
Разница в том, что я добавил зависимость, и она не работает   -  person tamuren    schedule 16.01.2013
comment
Какой сервер приложений вы тоже развертываете? Возможно, вам придется явно включить JAR Джексона в свой POM.   -  person Perception    schedule 16.01.2013
comment
В свои проекты я также импортирую resteasy-jaxb-provider. Пока проблем нет.   -  person Gilberto Torrezan    schedule 16.01.2013
comment
Я разворачиваюсь в Tomcat   -  person tamuren    schedule 17.01.2013
comment
Я провел еще один тест, чтобы увидеть, как будет работать прокси, и получил: NoClassDefFoundError: невозможно загрузить встроенный поставщик: org.jboss.resteasy.plugins.providers.jackson.ResteasyJacksonProvider. Таким образом, даже несмотря на то, что провайдер resteasy jackson определен в моем pom, он все равно не будет работать.   -  person tamuren    schedule 17.01.2013


Ответы (4)


<dependency>
      <groupId>org.codehaus.jackson</groupId>
      <artifactId>jackson-mapper-asl</artifactId>
      <version>${jackson-mapper-asl.version}</version>
      <scope>runtime</scope>
   </dependency>

   <dependency>
      <groupId>javax.xml.bind</groupId>
      <artifactId>jaxb-api</artifactId>
      <version>${jaxb-api.version}</version>
      <scope>runtime</scope>
   </dependency>

Этого более чем достаточно.

person lokesh    schedule 21.01.2013

Если вы планируете использовать более новые версии resteasy, которые реализуют JAX-RS 2.0, следующие зависимости должны решить вашу проблему:

<dependency>
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>resteasy-jaxrs</artifactId>
    <version>3.0.5.Final</version>
</dependency>

<dependency>
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>jaxrs-api</artifactId>
    <version>3.0.5.Final</version>
</dependency>

<dependency>
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>resteasy-jaxb-provider</artifactId>
    <version>3.0.5.Final</version>
</dependency>

<dependency>
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>resteasy-jackson2-provider</artifactId>
    <version>3.0.5.Final</version>
</dependency>
person ezzadeen    schedule 08.12.2013

Я использую все включенные библиотеки (проект maven), но все же при работе в качестве автономного приложения, созданного maven-assembly-plugin, у меня такая же ошибка, но при запуске из IDE он работает без проблем.

У меня также была проблема с журналированием log4j2, поскольку оно было полностью сломано при работе в качестве автономного приложения с толстой банкой (в IDE работает отлично), поэтому я сначала сосредоточусь на решении этой проблемы:

Конфигурация Log4j2 не найдена при запуске автономного приложения, созданного с помощью плагин тени

Итак, я решил проблему с отсутствующим провайдером и log4j2, перейдя с maven-assembly-plugin на maven-shade-plugin.

person David    schedule 11.07.2017
comment
У меня также была такая же проблема с автономным приложением, в котором отсутствовал поставщик JSON. Проблема заключалась в том, что плагин сборки Maven перезаписывал файл META-INF / services, отвечающий за регистрацию поставщика JAX-RS, потому что он был частью нескольких архивов, от которых я зависел. Это помогло мне решить мою проблему: stackoverflow.com/questions/18538802/ - person ivko; 12.10.2017

Если у вас есть все необходимые зависимости, примененные в вашем проекте, проверьте, реализует ли ваш класс Serializable.

@XmlRootElement
public class MyClass implements Serializable {
    //filds
}

Может, это решит твою проблему.

person Alairton Dendena    schedule 24.11.2017