何よりもまず、私はすでにWebサービスサーバーに接続できることを知ってほしい。wsimportで生成されたクライアントがどのように機能するかについてより深い知識を得たいので、この質問をしています。私の調査によると、wsimportはJAXWSを使用しています。私はJAXWSからの知識がないことに注意してください。
wsimportを使用してクライアントを生成しました。私が使用したWSDLはAxis2Webサービスからのものであり、Axis2によって自動的に生成されました。以下のクラスは、wsimportの結果です。
下com.datamodel.xsd
DataBeanRequest.java
DataBeanResponse.java
ObjectFactory.java
package-info.java
下com.service
MyWebService.java
MyWebServicePortType.java
MyMethod.java
MyMethodResponse.java
ObjectFactory.java
package-info.java
上記のクラスをcom.datamodel.xsd
使用すると、Webサービスサーバーで使用されるBean(ObjectFactory
およびを除くpackage-info
)が含まれていることがわかります。一方、MyMethod
およびMyMethodResponse
は、Webサービスのメソッド/操作の要求および応答パラメーターを設定するために使用されるBeanでもあります。
以下は私の質問です:(私の質問のいくつかの答えがわからない場合は、実際にすべてに答える必要はありません。:)そして、私が役立つと思う情報を自由に共有してください。)
私は正しいですか
- 上記の仮定で正しいですか?
- 他のクラスの機能は何ですか?
- 調べ
MyWebService
たところ、クライアントの生成に使用したWSDLの絶対位置を参照する注釈が含まれています。wsdllocation
クライアントでを指定することの関連性は何ですか?クライアントはその情報をどのように使用しますか? - Webサービスの実際のURLは、生成されたどのクラスでも宣言されていないことに気付きました。クライアントは、接続する必要がある場所をどのようにして知るのですか?
- クライアントが接続時にWSDLファイルのURLを読み取れるように、WSDLファイルに注釈が付けられていますか?もしそうなら、それは新しい接続を確立する必要があるときにWSDLファイルが常に読み取られることを意味しますか?
アプリケーションをコンパイルして別のサーバーにインストールする必要があるため、は無効になります。絶対パスではなく相対パスに設定できますか?どのように?(回答:はい、相対パスに設定できます。wsimport
コマンドには、wsdllocation
の値をwsdllocation
指定できる属性があります。)- HTTPSに接続する必要がある場合はどうなりますか。サーバー証明書を設定するにはどうすればよいですか?
- wsimportを使用してクライアントを生成する場合と、Axis2またはApacheCXFを使用してクライアントを生成する場合に違いはありますか?