1

単純な型を使用して単純な RESTful Web サービスを正常に作成しています。ここで、Web サービスの引数としてオブジェクトを渡し、そのオブジェクトを応答として取得したいと考えています。私のシナリオは、Jaxb を使用して XML メッセージをオブジェクトとして解析し、オブジェクトを Web サービスの要求として送信することです。その後、サーバー側で要求されたオブジェクトを処理し、応答 xml ファイルを生成してオブジェクトとして送り返します。

私が与えるURLパスで

 "http://localhost:8080/SampleWS/rest/checkXML/username=visolve&password=visolve" 

シンプルタイプ向け。しかし、オブジェクトでは、URL でオブジェクト参照を与える方法がわかりません。私の問題を解決する方法を教えてください..

Regards

バタカライ

4

2 に答える 2

2

非常に見栄えの良いドメイン オブジェクトを定義するだけです。残りは JAXB と JAX-RS が行います。

JAXB。

@XmlRootElement
class Regards {

    @XmlElement
    private long sincerely;
}

JAX-RS。

@Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
@POST
@Path("/sincerely")
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public Response sincerely(final Regards regards) {

    regards.setSincerely(System.currentTimeMillis());

    return Response.ok(regards).build();
}
于 2012-08-02T13:19:10.663 に答える
1

XML コンテンツ全体を URL に含めることもできますが、私はおそらく敬遠するでしょう。

次のように考えてください。URL で XML をエンコードすると、両方の作業が増える可能性があります。ここで、サーバーとクライアントの両方が、URL を適切に構築する方法を知り、すべてが正しく並んでいることを確認する必要があります。将来、同じコンテンツの JSON または YAML ビューを提供する必要がある場合はどうすればよいでしょうか? URL に content-type も含める必要がある場合があります。文字エンコーディングについてはどうですか?

言うまでもなく、HTTP はこれらの問題にすでに対処している素晴らしいトランスポート メカニズムを提供します。XML をHTTP メッセージのエンティティ ボディとして含め、 HTTP ヘッダーを使用して、送信しているコンテンツ タイプ、文字エンコードなどを識別します。これは両方の方法で機能します (サーバーとクライアントの両方が XML を送り返すことができます)。 /forth)、HTTP をより有効に活用します。

詳細の一部に役立つ関連リンクを次に示します。そしてもう一つ

余談ですが、暗号化されていないリンクを介してユーザー資格情報をプレーンテキストで送信する予定はないことを教えてください

于 2012-07-21T15:13:00.863 に答える