この例と参考記事の違いは次のとおりです。
1)deploy.wsdd はさらに詳細に定義されます (インターフェイスはサーバー側: ICalculate に定義されます)。
次のようにコードをコピーします。
<デプロイ xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="Calculate" Provider="java:RPC" style="rpc" use="literal">
<パラメータ名="wsdlTargetNamespace" 値="http://web.webservice.CalculateService.org" />
<parameter name="wsdlServiceElement" value="計算" />
<パラメータ名="wsdlServicePort" 値="CalculateService" />
<パラメータ名="wsdlPortType" 値="ICalculate" />
<parameter name="className" value="org.calculateservice.service.CalculateImp" />
<パラメータ名="typeMappingVersion" 値="1.2" />
<parameter name="allowedMethods" value="add sub" />
<パラメータ名="スコープ" 値="リクエスト" />
<操作名="追加" qname="operNS:追加"
xmlns:operNS="http://web.webservice.CalculateService.org"
returnQName="addReturn" returnType="rtns:int" xmlns:rtns="http://www.w3.org/2001/XMLSchema"
ソープアクション="">
<パラメータ qname="x" type="tns:int"
xmlns:tns="http://www.w3.org/2001/XMLSchema" />
<パラメータ qname="y" type="tns:int"
xmlns:tns="http://www.w3.org/2001/XMLSchema" />
</操作>
<オペレーション名="サブ" qname="operNS:サブ"
xmlns:operNS="http://web.webservice.CalculateService.org"
returnQName="subReturn" returnType="rtns:int" xmlns:rtns="http://www.w3.org/2001/XMLSchema"
ソープアクション="">
<パラメータ qname="x" type="tns:int"
xmlns:tns="http://www.w3.org/2001/XMLSchema" />
<パラメータ qname="y" type="tns:int"
xmlns:tns="http://www.w3.org/2001/XMLSchema" />
</操作>
</サービス>
</展開>
2) カスタマイズされた AxisServlet: org.calculateservice.core.AxisServlet (.NET と互換性があり、SOAPACTION チェックを削除)。
詳細なコードはここには掲載されていませんので、ご興味があればご自身で完全なサンプル コードをダウンロードしてください。
3) 呼び出し方法はローカルクラスを使って呼び出す方法です(JavaでWSを呼び出す方法は3つあるようです。個人的にはローカルプロキシクラスを使って呼び出すのが一番合理的で読みやすいと感じています)。
次のようにコードをコピーします。
public static void main(String[] args) throws ServiceException、RemoteException {
計算する Calculate = new CalculateLocator();
int 結果 = Calculate.getCalculateService().add(1, 2);
System.out.println("[%1 + 2 = " + 結果 + "%]");
}
WS を公開/呼び出しする主な手順: 1) ダウンロードしたリソースの axis1.4 インストール パッケージ内の webapp 内の axis ディレクトリを Tomcat の webapp ディレクトリにコピーします。
2) WS サーバー実装コードを作成します。
3) WEB-INF ディレクトリにdeploy.wsdd デプロイメント ファイルを書き込みます。
4)generate-server-config.bat スクリプトを記述し、server-config.wsdd を生成して、Web サービスを公開します。
5) ローカル呼び出しクライアント コードを生成するための wsdl2java.bat スクリプトを記述します。
6) WS を呼び出すテスト コードを作成します。
コード構造図:
client: WSDL2Java を使用して、wsdl に基づいてローカル クライアント コードを生成します。
core:カスタム AxisServlet、.NET と互換性があり、SOAPACTION チェックを削除します。
サービス: WS サーバーの実装コード (ここでは例として単純な加算と減算の計算が使用されています)。
テスト: 生成されたクライアント クラスに基づいてサーバーを呼び出します (生成されたコードのサーバー アドレスは localhost です。このアドレスを構成に変更する必要がある場合は、CalculateLocator クラスの変数 CalculateService_address の割り当てを変更するだけです)。
クリックして完全な例をダウンロードします
リソースにはサンプルの完全なコードと axis1.4 インストール ファイルが含まれています