JAX-WS を使用していくつかの .NET Web サービスを利用しようとしています。wsimport ツールを使用して Java クラスを生成しました。ただし、Java でこれらの (公開されていない独自の) Web サービスを使用しようとすると、C# の例でベンダーが提供するほとんどのメソッドとプロパティが、生成されたクラスで利用できないことに気付きました (エラーが発生していないにもかかわらず)。 WSDL ファイルから Java クラスを生成する場合)。Web サービスへの接続も基本的に機能します。
.NET SDK から wsdl.exe を使用して C# クラスを生成しようとしたところ、すべてのメソッドが適切に生成されました。
Java ですべての機能を利用できるように .NET Web サービスを利用する最善の方法は何でしょうか? wsimport が WSDL ファイルに記述されているすべてのメソッドとプロパティの小さなサブセットしか生成しないのはなぜですか?
例: WSDL ファイル UserManagement.wsdl にはスニペットがあります。
<s:schema elementFormDefault="qualified" targetNamespace="http://www.initechsystems.com/initech7/initechws/">
<s:element name="UserSecurityContext" type="s2:UserSecurityContext"/>
<s:complexType name="UserSecurityContext">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Token" type="s2:UserToken"/>
</s:sequence>
</s:complexType>
<s:complexType name="UserToken">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Value" type="s:string"/>
</s:sequence>
</s:complexType>
</s:schema>
C# では、次のように UserSecurityContext にアクセスできます。
UserManagement userMgmt = new UserManagement();
userMgmt.UserSecurityContextValue = new SampleWS.UserRef.UserSecurityContext();
ただし、Java では UserManagement オブジェクトを作成できます。
UserManagement userMgmt = new UserManagement();
ただし、生成された UserManagement オブジェクトには、アクセス可能なオブジェクト SecurityContext も、そのようなプライベート オブジェクトのゲッターまたはセッターもありません。