2014-09-03 2 views
0

jax-rs로 나머지 API를 만듭니다. 내가 XML로 PUT 요청을 처리 싶어요.Jaxrs - xml을 읽는 방법?

@PUT 
    @Consumes(MediaType.APPLICATION_XML) 
    @Path("/createOrder") 
    @Override 
    public void createOrder(String content) 
    { 
     ///some code 
    } 

가 PUT

Address: http://some_address/web-services/rest/createOrder 
Encoding: UTF-8 
Http-Method: PUT 
Content-Type: aplication/xml 
Headers: {Accept=[*/*], accept-encoding=[gzip,deflate,sdch], accept-language=[en-US,en;q=0.8], cache-control=[no-cache], connection=[keep-alive], Content-Length=[117], content-type=[aplication/xml], cookie=[JSESSIONID=CE083800388A447F94FBB1E75E994EA9], host=[localhost:8080], origin=[chrome-extension://fdmmgilgnpjigdojojpjoooidkmcomcm], user-agent=[Mozilla/5.0 (X11; Linux i686 (x86_64)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.94 Safari/537.36]} 
Payload: <note> 
<to>Tove</to> 
<from>Jani</from> 
<heading>Reminder</heading> 
<body>Don't forget me this weekend!</body> 
</note> 

하여 데이터를 전송하고이 오류를 얻을 : 나는 방법을 만들

WARNING: No operation matching request path "/web-services/rest/createOrder" is found, Relative Path: /createOrder, HTTP Method: PUT, ContentType: aplication/xml, Accept: */*,. Please enable FINE/TRACE log level for more details. 

모든 방법이 작동 GET하지만 PUT 처리 할 수 ​​없습니다. 그것을하는 방법?

+3

application/xml에는 Content-Type 헤더에 두 개의 p가 있습니다. – nablex

답변

0

요청 헤더 'Content-Type'이 잘못되었습니다. 그것은 연화/xml 대신 p 연화/xml을 말합니다.

또한 Payload을 헤더로 본 적이 없습니다. XML 내용은 요청의 본문 부분에 있어야합니다.

+0

나는 크롬 플러그 인 POSTMAN을 사용하여 테스트했으며 Pyalod를 헤더로 보냈습니다. @nablex가 말한 것처럼 두 가지 문제가 있습니다. 헤더를 application/xml로 바꿀 때 작동합니다. metdoh 서명을 public void createOrder (XMLSource 소스)로 변경하고 stream에 보낸 XML 내용이 있습니다. –