Axis2を使用しているので、それを使用してクライアントプロキシを生成し(wsdl2javaが親友です)、Webサービス用の標準のJavaプロキシを作成します。手動でSOAPエンベロープを作成するのに手を汚す必要はありません...(少なくとも99%のシナリオでは)。
WSDLを作成し(書き込みまたはjava2wsdlで生成)、それを使用してWebサービスを呼び出すためのJavaプロキシを作成します。
プロキシの使用方法について...
jspからのIMHO直接呼び出しはノーノーです。JSPでデータを収集してサーブレットにPOSTし、サーブレット内でWebService呼び出しを実行し、応答を管理し(Axis2フレームワークを使用する場合は純粋なJavaオブジェクトになります)、エラーを処理してから別のJSPに転送して結果を得る方がよいでしょう。 。
JSPは作成がいくらか簡単ですが、長期的には、計画されたものにJSPを使用し、サーブレット内にビジネスロジックを保持することをお勧めします。
ここでは、WSDLとクライアント生成を行うための2つのantタスクがあります。
<!-- create the wsdl file -->
<target name="genwsdl">
<echo message="Generate the WSDL file"/>
<taskdef name="java2wsdl" classname="org.apache.ws.java2wsdl.Java2WSDLTask" classpathref="axis2.classpath"/>
<java2wsdl className="org.stackoverflow.YourWebServiceClassName"
servicename="YourServiceName"
description="Whatever..."
outputLocation="./wsdl"
locationuri="http://localhost:8081/NameMe/CoolService">
<classpath>
<pathelement path="${axis2.classpath}"/>
<pathelement location="./build/classes"/>
</classpath>
</java2wsdl>
<echo message="Generation of the WSDL file complete"/>
</target>
<target name="genclient" depends="genwsdl">
<taskdef name="axis2-wsdl2java" classname="org.apache.axis2.tool.ant.AntCodegenTask" classpathref="axis2.classpath"/>
<axis2-wsdl2java wsdlfilename="./wsdl/YourWsdl.wsdl" output="./client overwrite="true"/>
</target>
クライアントクラス(プロキシ)を生成したら、それらを使用してWebサービスを呼び出すことができます。
次のようになります。
YourServiceStub stub = new YourServiceStub(wsEndPointUrl);
次に、スタブに、リモートで公開された各メソッドのメソッドと、ラップされたリクエスト/レスポンスオブジェクトの静的クラスがあります。ただし、この時点で、Axis2クライアントのドキュメントを少し読む必要があります。