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() { ... }

我确信正在调用此方法以响应请求。

但只要我添加 arg myXJC.generatedclass.Foo,它就不是了。

我的班级是否需要一些特殊的东西来扩展 javax.ws.rs.core.Application 以使用 JAXB?可能与 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 回答