Java 使用wsimport创建用于生成wsdl客户端代理的自定义绑定

Java 使用wsimport创建用于生成wsdl客户端代理的自定义绑定,java,eclipse,wcf,soap,wsdl,Java,Eclipse,Wcf,Soap,Wsdl,我需要在EclipseIDE中生成客户端代理java文件 我试图通过wsimport命令生成这个。下面是我使用的命令 wsimport-keep-b bindings.xml-p com.aasc.carrier.shipexec.proxy-implServiceName-wcfSoxContract-implPortName-wcfShip-b-XautoNameResolution 执行此操作后,我得到以下问题 [ERROR]无效操作“实例化EWCF”,无法生成java方法参数。全局元素“

我需要在EclipseIDE中生成客户端代理java文件

我试图通过wsimport命令生成这个。下面是我使用的命令

wsimport-keep-b bindings.xml-p com.aasc.carrier.shipexec.proxy-implServiceName-wcfSoxContract-implPortName-wcfShip-b-XautoNameResolution

执行此操作后,我得到以下问题

[ERROR]无效操作“实例化EWCF”,无法生成java方法参数。全局元素“{……}instanceEWCF”中包装子“package”的本地名称是一个java关键字。使用自定义更改参数名称。 第1行的

我尝试使用自定义绑定xml文件解决此问题,如下所示

<?xml version="1.0" encoding="UTF-8"?>
<jaxws:bindings xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
                xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
                wsdlLocation="http://shipexec.com/demo/wcf/soap?wsdl">
  <enableWrapperStyle>false</enableWrapperStyle>
  <jaxws:bindings node="wsdl:definitions/wsdl:import/wsdl:portType[@name='IwcfShip']/wsdl:operation[@name='InstantiateWCF']">
    <jaxws:parameter part="wsdl:definitions/wsdl:message[@name='IwcfShip_InstantiateWCF_InputMessage']/wsdl:part[@name='parameters']" childElementName="package" name="paramPackage" />
  </jaxws:bindings>
</jaxws:bindings>

假的
但我试图获取的节点无法识别

请任何人帮助查找更改“InstanceEWCF”操作参数名称的确切节点路径

谢谢,
Y Pradeep

我已通过将binding.xml文件更改为以下内容解决了此问题

<?xml version="1.0" encoding="UTF-8"?>
<jaxws:bindings xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
    wsdlLocation="http://shipexec.com/demo/wcf/soap?wsdl=wsdl0">
    <jaxws:bindings node="wsdl:definitions" >
        <jaxws:bindings node="//wsdl:portType[@name='IwcfShip']/wsdl:operation[@name='InstantiateWCF']">
             <jaxws:parameter part="wsdl:definitions/wsdl:message[@name='IwcfShip_InstantiateWCF_InputMessage']/wsdl:part[@name='parameters']" childElementName="tns:package" name="paramPackage" />
        </jaxws:bindings>
    </jaxws:bindings>
</jaxws:bindings>

还修改了wsimport命令,如下所示

<?xml version="1.0" encoding="UTF-8"?>
<jaxws:bindings xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
    wsdlLocation="http://shipexec.com/demo/wcf/soap?wsdl=wsdl0">
    <jaxws:bindings node="wsdl:definitions" >
        <jaxws:bindings node="//wsdl:portType[@name='IwcfShip']/wsdl:operation[@name='InstantiateWCF']">
             <jaxws:parameter part="wsdl:definitions/wsdl:message[@name='IwcfShip_InstantiateWCF_InputMessage']/wsdl:part[@name='parameters']" childElementName="tns:package" name="paramPackage" />
        </jaxws:bindings>
    </jaxws:bindings>
</jaxws:bindings>
wsimport-keep-p com.aasc.carrier.shipexec.proxy-implServiceName-wcfSoxContract-implPortName-wcfShip-B-XautoNameResolution-B bindings.xml

谢谢,
Y Pradeep

我已通过将binding.xml文件更改为以下内容解决了此问题

<?xml version="1.0" encoding="UTF-8"?>
<jaxws:bindings xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
    wsdlLocation="http://shipexec.com/demo/wcf/soap?wsdl=wsdl0">
    <jaxws:bindings node="wsdl:definitions" >
        <jaxws:bindings node="//wsdl:portType[@name='IwcfShip']/wsdl:operation[@name='InstantiateWCF']">
             <jaxws:parameter part="wsdl:definitions/wsdl:message[@name='IwcfShip_InstantiateWCF_InputMessage']/wsdl:part[@name='parameters']" childElementName="tns:package" name="paramPackage" />
        </jaxws:bindings>
    </jaxws:bindings>
</jaxws:bindings>

还修改了wsimport命令,如下所示

<?xml version="1.0" encoding="UTF-8"?>
<jaxws:bindings xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
    wsdlLocation="http://shipexec.com/demo/wcf/soap?wsdl=wsdl0">
    <jaxws:bindings node="wsdl:definitions" >
        <jaxws:bindings node="//wsdl:portType[@name='IwcfShip']/wsdl:operation[@name='InstantiateWCF']">
             <jaxws:parameter part="wsdl:definitions/wsdl:message[@name='IwcfShip_InstantiateWCF_InputMessage']/wsdl:part[@name='parameters']" childElementName="tns:package" name="paramPackage" />
        </jaxws:bindings>
    </jaxws:bindings>
</jaxws:bindings>
wsimport-keep-p com.aasc.carrier.shipexec.proxy-implServiceName-wcfSoxContract-implPortName-wcfShip-B-XautoNameResolution-B bindings.xml

谢谢, 普拉迪普