2012-10-01 27 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