我正在尝试使用JAX-WS消费一些.NET Web服务。 我使用wsimport工具生成了Java类。 然而,当我尝试在Java中使用这些(专有的,非公共的)Web服务时,我注意到供应商在他们的C#示例中提供的大多数方法和属性在生成的类中不可用(尽管从WSDL文件生成Java类时没有遇到任何错误)。 连接到Web服务也基本上可以工作。
当我尝试使用.NET SDK中的wsdl.exe生成C#类时,所有方法都可以正确生成。
那么,消费.NET Web服务的最佳方式是什么,以便Java中可用完整功能,并且为什么wsimport只生成WSDL文件中描述的一小部分方法和属性?
当我尝试使用.NET SDK中的wsdl.exe生成C#类时,所有方法都可以正确生成。
那么,消费.NET Web服务的最佳方式是什么,以便Java中可用完整功能,并且为什么wsimport只生成WSDL文件中描述的一小部分方法和属性?
Example: in the WSDL file UserManagement.wsdl there is a snippet
<s:schema elementFormDefault="qualified" targetNamespace="<a rel="nofollow noreferrer" href="http://www.initechsystems.com/initech7/initechws/">http://www.initechsystems.com/initech7/initechws/</a>">
<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();
However, in Java I can create the UserManagement object
UserManagement userMgmt = new UserManagement();
但是生成的UserManagement对象没有任何可访问的SecurityContext对象,也没有用于私有对象的getter或setter。