私は、wsdl ファイルが生成される jax-ws での作業に慣れており、maven プラグインを使用して、この wsdl ファイルとその xsd(s) に基づいてクライアントを生成できます。at では、このクライアントを使用するのは簡単です。また、マーシャリングや http 転送など、バックグラウンドで何が起こっているかを実際に考える必要もありません。
現在、jaxb を使用してオブジェクトを非整列化する jax-rs プロジェクトに取り組んでいます。そこにあるメソッドの 1 つは文字列のリストを返しますが、jaxb は this をマーシャリングする方法を知らないようです。これは、エンティティ (例: 顧客) のリストをマーシャリングする方法を知っているため、ちょっと驚くべきことです。
また、jax-rs サービスのクライアントを独自に作成し、http 応答と jaxb を使用したペイロードのアンマーシャリングの両方を処理しました。jaxb を使用したマーシャリングとアンマーシャリングは、コンテキストに追加されたエンティティのリストを自動的にマーシャリングまたはアンマーシャリングできないため、文字列のリストはさらに少ないため、非常に面倒です。
安らかなWebサービスを使用して、これらすべてを無料で入手するためのきちんとした方法があるかどうか知りたいですか? これは非常に軽量である必要があり、クライアントは簡単に配布できる必要があります。
ありがとう!ルナル
jaxrs と jaxb を使用して機能しないサービス メソッド:
@GET
@Path("/{customerId}")
@Produces(MediaType.APPLICATION_XML)
public List<String> isCustomerLocked(@PathParam("customerId") Long customerId) {
}
テキスト ペイロードのマーシャリング/アンマーシャリングを試行するクライアント コード。表示されていない jaxbcontext に追加されたクラス:
javax.xml.bind.Marshaller marshaller = jaxbContext.createMarshaller();
marshaller.marshal(obj, stringwriter)
javax.xml.bind.Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
unmarshaller.unmarshal(inputstream)