3

(mavenとJerseyの新機能であるStackoverflowへの私の最初の投稿;-)

スタンドアロンの jersey-JSON-application を開発しようとして、最新の mvn アーキタイプから始めました

    mvn archetype:generate org.glassfish.jersey.archetypes:jersey-quickstart-grizzly2

デフォルトでは、これは JSON サポートなしです。これをEclipseにインポートして実行すると、「わかった!」というメッセージが表示されました。私のブラウザのページ。JSON サポートは、pom.xml と Main.java の行のコメントを解除することで (?) 有効にすることができます。そのため、maven で生成された新しいプロジェクトで、pom.xml で次の依存関係を有効にしました。

     <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-moxy</artifactId>
        <version>${jersey-version}</version>
    </dependency>

...次に、mvn eclipse:eclipse を使用して Eclipse にインポートします。次に、Eclipse で Main.java を編集し、次の行のコメントを外します。

    rc.addBinder(org.glassfish.jersey.media.json.JsonJaxbBinder);

これにより、「org.glassfish.jersey.media を変数に解決できません」というコンパイル エラーが発生します。

そして、私は立ち往生しています。どこで私は間違えましたか ?

また、「JSONサポート」の意味を理解したいですか? jersey-1.17 に基づく以前のバージョンのプログラムでは、Rest リソースで @Produces({ MediaType.APPLICATION_JSON}) アノテーションを使用できました。「参照ライブラリ」には、4 つの jackson-libraries があります。新しいプロジェクトでは、jackson-libraries が表示されません。依存関係が正しく解決されていないためですか?それとも、 jersey-2.0 は Jackson を使用しなくなりましたか?

どんな助けでも大歓迎です。

4

1 に答える 1

0

Main クラスのコメントは、次の理由から、完全に誤解を招くようです。

  • jersey-media-moxy には org.glassfish.jersey.media.json.JsonJaxbBinder クラスが含まれていません
  • ResourceConfig には addBinder メソッドがありません (少なくとも現在の 2.0-rc1 バージョンでは)

いずれにしても、Jersey 2.0 で Jackson を引き続き使用できます。jackson-jaxrs-json-provider への依存関係を含めるだけです。

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

JacksonJaxbJsonProvider を登録します。

rc.register(JacksonJaxbJsonProvider.class);
于 2013-05-29T12:49:27.077 に答える