3

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

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

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

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

残念ながら、ステータス コードは 200 ですが、エンティティは返されません。ResponseBuilder を正しくインスタンス化していませんか? また、次のようにインスタンス化する必要があることもどこかで見ました。

ResponseBuilder builder = Response.status(200);

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

RESTFUL サービスに Apache CXF を使用しています。(バージョン 2.2.3 -- だと思います) :D 助けてくれてありがとう。

4

2 に答える 2

9

それはただの掃除の問題でした。最終的には機能しました。最終的には次のようにレスポンスを作成しました。

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

それはうまく機能します。私はそれが誰かを助けることを願っています。

于 2009-08-07T12:43:25.327 に答える
2

HTTP 応答には、それが Xml であることを識別するための正しい content-type ヘッダーがありますtext/xmlapplication\xml? XMLフィードの適切なコンテンツ タイプを確認してください。

応答ステータス 200 は、要求が成功したことを意味する標準のHTTP 応答コードの 1 つにすぎないため、成功した場合にのみそれを返します。

于 2009-08-05T12:45:05.050 に答える