cxf wsdl2java错误无法生成类型

cxf wsdl2java错误无法生成类型,java,web-services,wsdl,Java,Web Services,Wsdl,我尝试使用apache cxf 3.1.4中的wsdl2java,但收到以下错误:未能生成类型,并且wsdl位于同一文件夹中,即C:\Program Files(x86)\apache-cxf-3.1.4\bin。因此,我必须做什么来生成一个java wsdl,wsdl文件如下所示: <?xml version="1.0" encoding="UTF-8" standalone="no"?> <wsdl:definitions xmlns:soap="http://schema

我尝试使用apache cxf 3.1.4中的wsdl2java,但收到以下错误:未能生成类型,并且wsdl位于同一文件夹中,即C:\Program Files(x86)\apache-cxf-3.1.4\bin。因此,我必须做什么来生成一个java wsdl,wsdl文件如下所示:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.andre.dionisio.nom.br/SOAPWS/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="SOAPWS" targetNamespace="http://www.andre.dionisio.nom.br/SOAPWS/">
  <wsdl:types>
    <xsd:schema targetNamespace="http://www.andre.dionisio.nom.br/SOAPWS/">
      <xsd:element name="GetAverageEmployeesSalary">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element name="in" type="xsd:string"/>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="GetAverageEmployeesSalaryResponse">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element name="out" type="xsd:string"/>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="CalculateEmployeeBonus">
        <xsd:complexType>
            <xsd:sequence>

                <xsd:element name="in" type="xsd:string"></xsd:element>
            </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
    </xsd:schema>
  </wsdl:types>
  <wsdl:message name="GetAverageEmployeesSalaryRequest">
    <wsdl:part element="tns:GetAverageEmployeesSalary" name="parameters"/>
  </wsdl:message>
  <wsdl:message name="GetAverageEmployeesSalaryResponse">
    <wsdl:part name="parameters" type="xsd:decimal" />
  </wsdl:message>
  <wsdl:message name="CalculateEmployeeBonusRequest">
    <wsdl:part name="employeeId" type="xsd:long"></wsdl:part>
  </wsdl:message>
  <wsdl:message name="CalculateEmployeeBonusResponse">
    <wsdl:part name="bonus" type="xsd:decimal"></wsdl:part>
  </wsdl:message>
  <wsdl:message name="GetAverageEmployeesSalaryRequest1">

        <wsdl:part name="empty" type="xsd:string"></wsdl:part>
  </wsdl:message>
  <wsdl:portType name="SOAPWS">
    <wsdl:operation name="GetAverageEmployeesSalary">

            <wsdl:input
                message="tns:GetAverageEmployeesSalaryRequest1">
            </wsdl:input>
            <wsdl:output message="tns:GetAverageEmployeesSalaryResponse" name="parameters"/>
    </wsdl:operation>
    <wsdl:operation name="CalculateEmployeeBonus">
        <wsdl:input message="tns:CalculateEmployeeBonusRequest" name="employeeId"></wsdl:input>
        <wsdl:output message="tns:CalculateEmployeeBonusResponse" name="bonus"></wsdl:output>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="SOAPWSSOAP" type="tns:SOAPWS">
    <soap:binding style="document"
        transport="http://schemas.xmlsoap.org/soap/http" />
    <wsdl:operation name="GetAverageEmployeesSalary">
        <soap:operation
            soapAction="http://www.andre.dionisio.nom.br/SOAPWS/GetAverageEmployeesSalary" />
        <wsdl:input>
            <soap:body use="literal" />
        </wsdl:input>
        <wsdl:output name="parameters">
            <soap:body use="literal" />
        </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="CalculateEmployeeBonus">
        <soap:operation
            soapAction="http://www.andre.dionisio.nom.br/SOAPWS/CalculateEmployeeBonus" />
        <wsdl:input name="employeeId">
            <soap:body use="literal" />
        </wsdl:input>
        <wsdl:output name="bonus">
            <soap:body use="literal" />
        </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="SOAPWS">
    <wsdl:port binding="tns:SOAPWSSOAP" name="SOAPWSSOAP">
      <soap:address location="http://www.andre.dionisio.nom.br/"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>


请共享用于运行
wsdl2java
的命令。在
程序文件
下进行安装可能会有问题,因为路径中有空格。出于这个原因,我通常在
C:/apps/
(或类似)下安装这些实用程序。为了解决这个问题,我将另一台机器放在名称中没有空格的路径中,并在两个wsdl的旧java 1.7.0_55-b13 java_home中运行。命令是wsdl2java SOAPWS.wsdl,对于另一个文件,我输入了一个名称old,因此命令是wsdl2java SOAPWSold.wsdl。将可执行文件放入一个没有空格的路径也解决了我的问题。