2013-01-16 21 views
7

私は(アプリケーション/ json)を消費し、(アプリケーション/ json)を生成する安らかなサービス(post)を持っています。このサービスの単一のパラメータは、注釈付きのJavaオブジェクトです。RESTEasy:コンテンツタイプアプリケーション/ jsonタイプのライターが見つかりません

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

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

これは、ライブラリのjarsが不足しているか、application/jsonのために自分の作家を書く必要があることを意味しますか?これは

<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> 

マット

+0

可能な複製http://stackoverflow.com/questions/3630827/why-writer-for-media-type-application-json-missing –

+0

違いは私が依存関係を追加したもので、動作しません – tamuren

+0

どのようなアプリケーションですか?サーバーも展開していますか? POMにJackson JARを明示的に含める必要があるかもしれません。 – Perception

答えて

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> 

:私はここでRESTEasyの2.3.3.Final

を使用しています

は、私はおそらく関連していると思い、私は私のポンポンに追加し、さまざまな依存関係のありますちょうど十分な以上。

ここに参照してください:http://howtodoinjava.com/2012/12/15/how-to-write-restful-webservices-using-spring-3-mvc/

13

あなたは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> 
1

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

スタンドアロン脂肪のjarアプリケーションとして実行しているとき、それは完全に壊れていたように私も(IDEで完璧に動作します)log4j2ログに問題があったので、私が最初にこれを解決するに焦点を当てる:

Log4j2 configuration not found when running standalone application builded by shade plugin

だから私は解決プロバイダとlog4j2が見つからない問題maven-assembly-pluginからmaven-shade-plugin

+1

私はまた、JSONプロバイダがないスタンドアロンアプリケーションで同じ問題を抱えていました。問題は、Mavenアセンブリプラグインが、JAX-RSプロバイダの登録を担当するMETA-INF/servicesファイルを上書きしていたことです。これは、いくつかのアーカイブの一部であり、依存しています。これは私の問題を解決するのに役立ちました: https://stackoverflow.com/questions/18538802/java-runtime-exception-could-not-find-writer-for-content-type-when-building-u – ivko

1

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

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

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

関連する問題