最好的方式进行消费。网网服务Java
-
10-07-2019 - |
题
我想占用一些。网网络服务使用贾克斯-WS。我已经产生的Java类使用wsimport工具。然而,当我尝试使用这些(专有的、不公共)网络服务在爪哇,我注意到,大多数的方法和属性的供应商提供在他们C#例子不是缴费中产生的类(尽管有没有遇到任何错误的时候产生的Java类从WSDL文件)。连接到电网的服务也基本上是这样。
当我试图产生一个C#类使用wsdl.exe 从.NET开发工具包,所有的方法进行了适当的产生。
什么是最好的方式消耗。网络服务以便使全部功能将在Java,并为什么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 followingly:
UserManagement userMgmt = new UserManagement();
userMgmt.UserSecurityContextValue = new SampleWS.UserRef.UserSecurityContext();
然而,在Java我可以创建UserManagement对象
UserManagement userMgmt = new UserManagement();
但是,所产生的UserManagement对象没有任何访问对象的信,也没有吸气,或者对于这样一个私人的对象。
其他提示
我希望看到您正在讨论的示例,因为它听起来像示例通过线路发送具有行为的对象而不仅仅是模型(或消息,如果您更喜欢更好的SOA术语)。
当您发送格式化为数据模型或消息的对象时,它将不包含要使用的方法。并且,使用互操作,设置行为(方法)以跨越线路没有多大意义。
至于你可以做什么,因为你正在序列化,你可以创建行为方法,如果他们有意义的话。就个人而言,我会在其他对象中创建行为并将模型/消息保存为状态容器。但是,您的里程可能会有所不同; - )
不隶属于 StackOverflow