2012-10-01 25 views
2

我有一个完整的工作&经过测试的REST API。 创建我正在使用声明的文档。发音不识别JAXBElement

请求&响应对象是使用jaxb从xsd文件生成的。 在文档中,响应对象被识别,但我的请求主体的类型为(自定义)

请求体被封装在的JAXBElement

代码例如:

@POST 
@Consumes(
{ 
    MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON 
}) 
@Produces(
{ 
    MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON 
}) 
public ResponseObject post(JAXBElement<CreateRequestObject> JAXBCreateRequestObject, 
     @HeaderParam(value = "X") String x, 
     @HeaderParam(value = "Y") String y) throws WebApplicationException 

有没有像@TypeHint注释指定请求对象的类型?

+0

只是出于对你的REST WS的设计好奇,我看到你作为一个参数传递“的JAXBElement ”,这意味着您希望请求中有复杂的层次结构。在这种情况下,最好是只有基于SOAP的旧的基于SOAP的WS定义复杂的类型和验证? – user1697575

回答

2

你应该能够应用@TypeHint的参数,如:

public ResponseObject post(@TypeHint(...) JAXBElement<CreateRequestObject> JAXBCreateRequestObject, 
    @HeaderParam(value = "X") String x, 
    @HeaderParam(value = "Y") String y) 
+0

这个工作!谢谢。 – ToHe