2009-08-05 11 views
3

いくつかの結果セットを含むXMLを返すために、RESTful Webサービスを作成しています。私はXSTREAMを使用し、XML文字列にオブジェクトを解析しました。この文字列を返す必要があるので、呼び出し元のクライアントに返す方法を知る必要があります。RESTサービスでXMLレスポンスを返す

1つの方法は、呼び出し元のクライアントにRESPONSEを返すことです。そして私のサンプルコードは、私がやろうとしていることを示しています。ステータスコードは、私が間違ってResponseBuilderをインスタンス化200アムですが

@Path("somepath") 
public class ClassToReturnXML 
{ 
    public Response methodToReturnXML() 
    { 

     ResponseBuilder builder = new ResponseBuilderImpl(); 
     builder.type(MediaType.TEXT_XML); 
     builder.entity(myXMLString); 
     return builder.build(); 
    } 
} 

残念ながらそれは、エンティティを返しませんか?また、次のようにインスタンス化する必要があることもわかりました。

ResponseBuilder builder = Response.status(200); 

応答としてXMLを返す適切な方法を提案してください。

私は、控えめなサービスのためにAPACHE CXFを使用しています。 (バージョン2.2.3 - 私は推測する):D すべての助けを進んでいただきありがとうございます。

答えて

8

これは単なるクリーニングの問題でした。それは結局働いた。私は最終的に次のように応答を作成しました。

Response response = Response.status(200).type(MediaType.TEXT_XML).entity(xmlString).build(); 

うまく動作します。私はそれが誰かを助けることを望む。

2

HTTP応答がXmlであることを識別するための正しいコンテンツタイプヘッダー、つまりtext/xmlまたはapplication\xmlを持っていますか?チェックアウトThe Proper Content Type for XML Feeds

応答ステータス200は、要求が成功したことを意味する標準HTTP Response Codesの1つで、その場合にのみ返されます。

関連する問題