java - 在 Java 中使用 .NET Web 服务的最佳方式

标签 java .net web-services jax-ws interop

我正在尝试使用 JAX-WS 使用一些 .NET Web 服务。我已经使用 wsimport 工具生成了 Java 类。但是,当我尝试在 Java 中使用这些(专有的,非公共(public)的)Web 服务时,我注意到供应商在其 C# 示例中提供的大多数方法和属性在生成的类中不可用(尽管没有遇到任何错误当从 WSDL 文件生成 Java 类时)。连接到网络服务也基本有效。

当我尝试使用 .NET SDK 中的 wsdl.exe 生成 C# 类时,所有方法都已正确生成。

使用 .NET Web 服务的最佳方式是什么,以便在 Java 中提供全部功能,为什么 wsimport 只生成 WSDL 文件中描述的所有方法和属性的一小部分?

示例:在 WSDL 文件 UserManagement.wsdl 中有一个片段


<s:schema elementFormDefault="qualified" targetNamespace="<a href="http://www.initechsystems.com/initech7/initechws/" rel="noreferrer noopener nofollow">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();
但是,在 Java 中我可以创建 UserManagement 对象


UserManagement userMgmt = new UserManagement();

但生成的 UserManagement 对象没有任何可访问对象 SecurityContext,也没有此类私有(private)对象的 getter 或 setter。

最佳答案

关于java - 在 Java 中使用 .NET Web 服务的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/635434/

相关文章:

java - 创建一个可执行补丁来升级我的应用程序

java - Android:从应用程序外部控制 MediaPlayer 实例(对象)?

java - weblogic上的多个类加载器问题

.net - 如何根据列表中是否存在绑定(bind)对象来设置 CheckBox.IsChecked

c# - 当我将 TimeSpan.Zero 作为过期项添加到缓存时会发生什么?

java - 保留 Double 值的格式 - Java

c# - CLR 顺序结构布局 : aligning and size

c# - 从 StackFrame 获取类型 T

node.js - 错误 : Most middleware (like bodyParser) is no longer bundled with Express

web-services - 此 XML 文件似乎没有任何关联的样式信息