この技術の基礎を学ぶために、単純な SOAP Web サービス (電卓) を作成しようとしています。私は SOAP を初めて使用するので、すでにいくつかのことを行っていますが、次に何をすればよいかわかりません。
私はトップダウン アプローチを選択しました。つまり、最初に wdsl ファイルを作成し、次にコードを自動的に生成します。サービスの説明を含む wsdl ファイルを作成し、それを使用して Java ファイルを生成しました。1.1 と 2.0 の両方の形式があります。2.0 ファイルを取得するには、axis2 の wsdl2java ツールを使用しました。1.1 の場合は、Java wsimport ツールを使用しました。
wsimport ツールから、次のファイルを取得しました。
- パッケージ情報.java
- ObjectFactory.java
- CalculatorService.java (私のサービスの名前)
- Calculator.java (私の portType の名前)
- Input.java (複合型の名前)
wsdl2java ツールにより、次のファイルが提供されました。
- サービス.xml
- CalculatorService.wsdl
- Output.java (出力要素の名前)
- Input.java (入力要素の名前)
- cInput.jaba (入力複合要素の名前)
- ExtensionMapper.java
- CalculatorServiceCallbackHandler.java
- CalculatorServiceMessageReceiverInOut.java
- CalculatorServiceSkeleton.java (インターフェースの実装を含む)
- CalculatorServiceSkeletonInterface.java
- CalculatorServiceStub.java
wsdl2java ファイルには、サーバーの実装を除いて必要なものがすべて揃っていると思います。wsimport のものに関しては、実装が欠落しており、どこに追加すればよいかわかりません。サーバーの実装も欠落しています。
最初は、ローカル サービス (ローカル サーバー) として実行して、動作していることをテストし、後でクライアントも作成したいと考えています。
ここでサーバー実装の例を見つけました: In-process SOAP service server for Java。それは非常に単純に思えます。可能であれば、このアプローチを使用したいと思います。しかし、生成したファイル (wsdl2java または wsimport) で動作するかどうかはわかりません。Apache サーバーが使用できる場合は、Apache サーバーもインストールしています。そのため、サーバーのセットアップに使用するファイルのセットと、それを行う最も簡単な方法についてのアドバイスを探しています。
また、wsdl ファイルで使用される名前空間がサービスの可用性に影響するかどうか疑問に思っていますか? それらは URI-s でなければなりませんが、現時点では自分のサービス用に URI を持っていません。そのため、targetNamespace、xmlns:tns、エンドポイント アドレスなどには、ランダムな URL を使用しました。ローカルで実行しようとしても機能しますか?それとも問題が発生しますか?