【问题标题】:Wsdl optional params become mandatory in generated java stub codeWsdl 可选参数在生成的 java 存根代码中成为必需的
【发布时间】:2014-11-11 13:37:39
【问题描述】:

我是网络服务的新手。 我已经从提供的 wsdl 生成了存根。 我观察到的是存根生成的代码,要求我提供强制性的可选参数。 例如这是wsdl文件中的方法之一。

        <complexType name="OPP_BOOK_FACT">
           <sequence>
              <element form="unqualified" name="Descriptions" type="tns:Descriptions" minOccurs="0"/>
              <element form="unqualified" name="CustomerID" type="tns:CustomerConfirmationID" minOccurs="0"/>
              <element form="unqualified" name="UID" type="tns:UPRID" minOccurs="0"/>
              <element form="unqualified" name="Ext" type="tns:ExtAuth" minOccurs="0"/>
              <element form="unqualified" name="Partner" type="tns:Partner"/>
              <element form="unqualified" name="Subscriber" type="tns:Subscriber"/>
              <element form="unqualified" name="FactBook" type="tns:FactBook"/>
              <element form="unqualified" name="FactAuth" type="tns:FactAuth"/>
              <element form="unqualified" name="Price" type="tns:Price"/>
              <element form="unqualified" name="SubseReqData" type="tns:SubseReqData" minOccurs="0"/>
              <element form="unqualified" name="FactBundleTemplate" type="tns:FactBundleTemplate" minOccurs="0"/>
              <element form="unqualified" name="ContentInfo" type="tns:ContentInfo" minOccurs="0"/>
              <element form="unqualified" name="Discount" type="tns:Discount" minOccurs="0"/>
                <element form="unqualified" name="FactShoppingBasket" type="tns:FactShoppingBasket" minOccurs="0"/>
           </sequence>
        </complexType>

如果您注意到例如“CustomerID”、“UID”和“Ext”是可选参数,例如 minOccurs="0"。 但是生成的stub api如下。

com.xstg.www.soap.schemas.services.v80.Xaction80Stateful_wsdl.Xaction80StatefulPortType.OPP_BOOK_F ACT(Description[] arg0, Long arg1, String arg2, ExtAuthElement[] arg3, 合作伙伴 arg4, 订阅者 arg5, FactBook arg6、FactAuth arg7、Price arg8、SubseReqData arg9、FactBundleTemplate arg10、ContentInfo arg11、折扣 arg12、FactShoppingBasket arg13) 抛出 RemoteException

很明显,要从客户端调用此方法,我还必须明确提供所有可选参数变量。 我已经使用&lt;axis-wsdl2java&gt; ant 调用来生成存根。

我可以知道这是什么原因吗?据我说,客户存根不应该期望我也提供所有可选参数。 如果您需要任何其他信息,请告诉我。

更新: 我们使用的是轴 1.4。上述存根是使用axis-1.4 生成的。 我对axis2进行了同样的尝试。在axis2中生成的存根不同。但是我需要使用axis-1.4,因为旧的客户端代码已经使用这个版本开发了

【问题讨论】:

    标签: java web-services soap wsdl axis


    【解决方案1】:

    您是否介意尝试添加 nillable="true"。

    喜欢:

    <element form="unqualified" name="Ext" type="tns:ExtAuth" nillable="true" minOccurs="0"/>
    

    【讨论】:

    • 我试过了,但没有运气。看起来 nillable="true" 是说参数可以取空值或不取值。以下链接中有一个很好的解释关于这个dimuthu.org/blog/2008/08/18/…
    猜你喜欢
    • 1970-01-01
    • 2016-04-05
    • 1970-01-01
    • 1970-01-01
    • 2019-07-25
    • 2011-11-18
    • 2011-03-09
    • 2018-05-15
    • 1970-01-01
    相关资源
    最近更新 更多