8

(application / json)を消費して(application / json)を生成するRESTfulサービス(post)があります。このサービスの単一のパラメーターは、注釈付きのJavaオブジェクトです。

org.jboss.resteasy.client.ClientRequestを使用してリクエストをサービスに送信しています。ただし、クライアント側でこの例外が発生し、例外が発生します。

コンテンツタイプのアプリケーション/jsonタイプのライターが見つかりませんでした。

これは、いくつかのライブラリjarが欠落していることを意味しますか、それともapplication / json用に独自のライターを作成する必要がありますか?

私はresteasy2.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>
4

5 に答える 5

21

JAX-RS 2.0を実装する新しいバージョンのresteasyを使用する場合は、次の依存関係で問題を解決できます。

<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>
于 2013-12-08T02:48:50.387 に答える
3
<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>

これで十分です。

于 2013-01-21T07:02:59.237 に答える
2

含まれているすべてのライブラリ(mavenプロジェクト)を使用していますが、によって生成されたスタンドアロンアプリケーションとして実行するとmaven-assembly-plugin、同じエラーが発生しますが、IDEから実行すると問題なく動作します。

スタンドアロンのfatjarアプリケーションとして実行すると(IDEでは完全に機能します)log4j2ロギングが完全に壊れたため、log4j2ロギングにも問題がありました。そのため、最初にこれを解決することに焦点を当てます。

シェードプラグインによってビルドされたスタンドアロンアプリケーションを実行しているときにLog4j2構成が見つかりません

maven-assembly-pluginそこで、からに移行することで、プロバイダーとlog4j2が見つからないという問題を解決しました。maven-shade-plugin

于 2017-07-11T14:52:05.607 に答える
2

プロジェクトに必要なすべての依存関係を適用している場合は、クラスがSerializableを実装しているかどうかを確認してください。

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

多分それはあなたの問題を解決します。

于 2017-11-24T14:07:16.650 に答える
0

maven-assembly-pluginを使用している場合、この問題が発生する可能性があります。以前の回答は、この投稿この投稿だけでなく、これを解決するのに役立ちました。

これを削除しました

         <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>com.example.MainClass</mainClass>
                    </manifest>
                </archive>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
            </configuration>
            <executions>
                <execution>
                    <id>make-assembly</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

そして、maven-shade-pluginに移行するために、これを次のように置き換えました。

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>2.1</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <createDependencyReducedPom>false</createDependencyReducedPom>
                            <transformers>
                                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <mainClass>com.example.MainClass</mainClass>
                                </transformer>
                                <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                    <resource>META-INF/services/javax.ws.rs.ext.Providers</resource>
                                </transformer>
                            </transformers>
                            <filters>
                                <filter>
                                    <artifact>*:*</artifact>
                                    <excludes>
                                        <exclude>META-INF/*.SF</exclude>
                                        <exclude>META-INF/*.DSA</exclude>
                                        <exclude>META-INF/*.RSA</exclude>
                                    </excludes>
                                </filter>
                            </filters>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
于 2021-08-06T09:34:56.437 に答える