1

Web サービス用の Java クライアントを生成する必要があります。1 つは Apache CXFDynamicClientFactoryクラスを使用する方法で、もう 1 つは JAX-WS Dispatch API を使用する方法です。

CXF ドキュメントから、DynamicClientFactoryクラスが実行時に Web サービス SEI、データ クラスを生成することを理解しました (wsdl2Java ツールを使用)。Web サービス メソッドを呼び出したい場合は、適切なデータ クラス名をロードする必要があり、次のようにリフレクションを使用してパラメーターを設定する必要があります。

JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
Client client = dcf.createClient("people.wsdl", classLoader);

Object person = Thread.currentThread().getContextClassLoader().loadClass("com.acme.Person").newInstance();

Method m = person.getClass().getMethod("setName", String.class);
m.invoke(person, "Joe Schmoe");

client.invoke("addPerson", person);

上記のコードPersonでは、実行時に CXF によってクラスが生成され、リフレクションを使用してプロパティ値が設定されます。

ここでの私の質問は、20 個のパラメーター値を設定したい場合、それを行うために 20 個のリフレクション コールを行う必要があるということです。これはそれを行うための効率的な方法ですか?または、代替手段はありますか?それとも、JAX-WS から Dispatch API を使用する方がよいでしょうか? 私を助けてください。

4

0 に答える 0