0

Tomcat 7 で Jersey 2 m13-3 を使用して、XML を投稿し、JAXB に自動的に非整列化させようとしています。

私のメソッド署名は次のようなものです:

@POST
@Consumes(MediaType.APPLICATION_XML)
@Produces( {"text/xml"})
public Response setFoo(
        myXJC.generatedclass.Foo foo
        ) 

私は 400 の悪い要求を受け取りますが、例外はありません (見つけることができます)。

テスト:

@POST
@Consumes(MediaType.APPLICATION_XML)
@Produces( {"text/xml"})
public Response setFoo() { ... }

このメソッドは、リクエストに応じて呼び出されていると確信しています。

しかし、引数 myXJC. generatedclass.Foo を追加するとすぐに、そうではありません。

JAXB を使用するために javax.ws.rs.core.Application を拡張するクラスに何か特別なものが必要ですか? おそらくResourceConfig関連の何か?追加のジャージ固有の瓶はありますか?

jersey-media-moxy があるようです。MOXy で動作するようになれば幸いですが、Sun/Oracle JAXB でも動作することが理想的です。

私は次のソースコードを見てきました:

<dependency>
    <groupId>org.glassfish.jersey.examples</groupId>
    <artifactId>jaxb</artifactId>
    <version>2.0-m13-3</version>
</dependency>

しかし、私はまだ問題を抱えています。

4

1 に答える 1

0

XJC を使用して XSD からクラスを生成したときに、そこに誤ったターゲット名前空間が残っていたことが判明しました。

私が投稿した XML は名前空間で修飾されていませんでしたが、生成されたクラスは名前空間を想定していました。

これを修正すると、問題なく動作しました。

于 2013-04-02T09:44:24.740 に答える