0

我正在使用wsimport生成客户端 Web 服务代码。(请参阅下面的部分 wsdl 代码)。

代码生成完成后,我得到没有定义方法的空 TokenRequest 类。另一方面,TokenResponse 类定义了几个方法,很少有 setter 和 getter。

鉴于下面的 WSDL,为什么我的 TokenRequest 类是空的?

我希望它有 4 个用于 ClientKey、Password、UserKey 和 UserName 的 setter 方法。现在,我无法设置这些参数并将它们传递给接收此 TokenRequest 对象的主登录方法。

我尝试在 .NET 4.0 中创建对此 Web 服务的引用,并且一切正常。TokenRequest 类具有接收我需要的 4 个参数的构造函数。

知道有什么问题吗?明天我将尝试使用 Axis2 执行此操作...

   <?xml version="1.0" encoding="utf-8"?>
    ...
                <wsdl:input name="TokenRequest">
                    **<soap12:header message="i0:TokenRequest_Headers" part="ClientKey" use="literal"/>
                    <soap12:header message="i0:TokenRequest_Headers" part="Password" use="literal"/>
                    <soap12:header message="i0:TokenRequest_Headers" part="UserKey" use="literal"/>
                    <soap12:header message="i0:TokenRequest_Headers" part="UserName" use="literal"/>
                    <soap12:body use="literal"/>**
                </wsdl:input>
                <wsdl:output name="TokenResponse">
                    <soap12:body use="literal"/>
                </wsdl:output>
     ...
4

1 回答 1

1

本节“4.1.4. 将附加的 WSDL 头映射到方法参数”解释为什么 wsimport 不会产生你想要的soap头属性。并且在 4.1.4 部分中有一条注释说“由于 JAX-WS RI 2.1.3,wsimport 有一个新选项 -XadditionalHeaders,此选项会将此类附加标头映射为方法参数。” . 因此,您应该查看库(Metro、Axis、CXF、......)的文档,看看它们是否具有这样的功能。

于 2013-10-16T23:59:42.343 回答