2012-01-27 5 views
1

私はResteasyでGETメソッドを実装しようとしています。複雑な型を含む多くの検索パラメータがあるため、私はQueryParamを使用できませんでした。だから私はXMLを使うことを考えました。以下のコードでは、リクエストとレスポンスの両方がスキーマから生成されたJAXBクラスです。私の質問は、クライアントが要求xmlをどのように渡すことができるかです。Resteasy - GETメソッド - XMLを渡す

@GET 
@Path("search") 
@Produces(MediaType.APPLICATION_XML) 
@Consumes(MediaType.APPLICATION_XML) 
public SearchResponse searchTasks(SearchRequest searchReq) 
{ 

ここで私は、ジャージーで作成したサンプルのクライアントです。私が電話をすると、「415 Unsupported Media Type」が表示されます。私はXMLを正しく渡していますか? XMLパラメータをGETメソッドに送ることは可能ですか?

webResource.accept(MediaType.APPLICATION_XML); 
    webResource.type(MediaType.APPLICATION_XML); 

    webResource.entity(req,MediaType.APPLICATION_XML); 

    SearchResponse return1 = webResource.get(SearchResponse.class); 

私はこれをTomcatにデプロイしています。

ありがとうございます。

+0

あなたの質問は[Jersey client API WebResource accept()MIMEヘッダーを正しく設定していません](http://stackoverflow.com/a/7435940/267197)で既に回答済みです。 –

答えて

1

要求があったときにContent-Typeヘッダーを設定していないため、エラーが発生します。それがContent-Type: application/xmlに設定されていることを確認してください。

GETリクエストにはリクエスト本体がありませんが、可能です。 I suggest against including oneを使用し、代わりにPOSTメソッドを使用します。

+0

お返事ありがとうございます。しかし、次のようなコンテンツタイプの設定はできませんか? - webResource.type(MediaType.APPLICATION_XML); –

+2

** Arav **は正しいです:彼は受け入れられたコンテンツタイプを設定しようとしましたが、正しい方法ではありませんでした: 'webResource.accept()'は実際にはさらに使用されるべき 'Builder'を返しています。 –

+0

正しい使い方の例が参考になります。 – Webnet

関連する問題