Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Eclipse中命名空间的WSDL验证失败_Java_Eclipse_Web Services_Soap_Wsdl - Fatal编程技术网

Java Eclipse中命名空间的WSDL验证失败

Java Eclipse中命名空间的WSDL验证失败,java,eclipse,web-services,soap,wsdl,Java,Eclipse,Web Services,Soap,Wsdl,我已经创建了一个WSDL文件,并打算用它创建自上而下的web服务。不幸的是,Eclipse抛出了以下错误: “运行命名空间的WSDL验证程序时出现问题http://schemas.xmlsoap.org/wsdl/“ “我做了一些研究,看起来这是因为一些EclipseWSDL验证错误,”他解释道 有人声称他用补丁修复了这个错误,我已经应用了它,但是错误仍然存在,我开始认为我的wsdl文件本身存在一些问题 WebService应该获取一个ID列表(列),并基于这些ID返回一个2列的表数据 你能帮我

我已经创建了一个WSDL文件,并打算用它创建自上而下的web服务。不幸的是,Eclipse抛出了以下错误:

“运行命名空间的WSDL验证程序时出现问题http://schemas.xmlsoap.org/wsdl/“

“我做了一些研究,看起来这是因为一些EclipseWSDL验证错误,”他解释道

有人声称他用补丁修复了这个错误,我已经应用了它,但是错误仍然存在,我开始认为我的wsdl文件本身存在一些问题

WebService应该获取一个ID列表(列),并基于这些ID返回一个2列的表数据

你能帮我找出它的毛病吗


面向Web开发人员的EclipseJavaEEIDE。 版本:Mars.2发行版(4.5.2) 构建id:20160218-0600 WTP 1.2.1.20150819-2220

下面是WSDL文件:

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions 
  targetNamespace="reb.ecm.ws.RebUtilsService"
        xmlns="reb.ecm.ws.RebUtilsService"
        xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
        xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
        xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
        xmlns:xsd="http://www.w3.org/2001/XMLSchema">


    <wsdl:types>
      <xsd:complexType name='DPList'>
        <xsd:element
          minOccurs='0'
          maxOccurs='unbounded'
          name='DP'
          type='DP'/>
      </xsd:complexType>
      <xsd:complexType name='DP'>
        <xsd:all>
          <xsd:element
            minOccurs='0'
            maxOccurs='1'
            name='DPID'
            type='xsd:int'/>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name='WSInfoList'>
        <xsd:element
          minOccurs='0'
          maxOccurs='unbounded'
          name='WSInfoItem'
          type='WSInfoItem'/>
      </xsd:complexType>
      <xsd:complexType name='WSInfoItem'>
        <xsd:all>
          <xsd:element
            minOccurs='0'
            maxOccurs='1'
            name='DPID'
            type='xsd:int'/>
        </xsd:all>
        <xsd:all>
          <xsd:element
            minOccurs='0'
            maxOccurs='1'
            name='WSID'
            type='xsd:int'/>
        </xsd:all>
      </xsd:complexType>
    </wsdl:types>

    <wsdl:message name="inMessage">
        <wsdl:part name="DPList" type="DPList" />
    </wsdl:message>

    <wsdl:message name="outMessage">
        <wsdl:part name="WSInfoList" type="WSInfoList" />
    </wsdl:message>
    <wsdl:portType name="RebUtilsServicePortType">
        <wsdl:operation name="GetActualWSIDbyDPID"  >
            <wsdl:input message="inMessage" />
            <wsdl:output message="outMessage" />
        </wsdl:operation>
                    </wsdl:portType>

    <wsdl:binding name="RebUtilsServiceHTTPBinding" 
            type="RebUtilsServicePortType">
        <wsdlsoap:binding style="document" 
            transport="http://schemas.xmlsoap.org/soap/http"/>
        <wsdl:operation name="GetActualWSIDbyDPID">
            <wsdlsoap:operation soapAction=""/>
             <wsdl:input>
                <wsdlsoap:body use="literal" />
            </wsdl:input>
            <wsdl:output>
                <wsdlsoap:body use="literal" />
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>

    <wsdl:service name="RebUtilsServicePorts">
        <wsdl:port binding="RebUtilsServiceHTTPBinding"  name="RebUtilsService">
            <wsdlsoap:address 
                location="http://localhost:9084/RebUtilsService/RebUtilsServicePorts"/>
        </wsdl:port>
    </wsdl:service>

</wsdl:definitions>


更新:Eclipse没有问题。至少,前面提到的补丁修复了一些问题。

回答

  • 您的架构未正确定义。请看下图。
  • 请将其更改为模式定义中定义的已更正数据类型元素,请在EclipseWSDL设计视图中进行更改。
  • 重新生成您的客户并告知结果
  • 您应该有单独的XSD模式文件,并且应该根据您的需求进行映射,这就是它失败的原因,请查看分解的设计视图
  • 一般规则

  • 创建SOAP服务时,请定义所需的输入/输出XSD模式

  • 使用模式作为输入,您需要使用IDE/Maven/任何构建工具生成WSDL文件

  • 为了便于操作/编辑,请选择EclipseWSDL编辑器


  • 您能告诉我您使用的是哪个版本的eclipse吗?另外,请从EclipseMarketplace安装EclipseWSDL验证插件,并尝试为Web开发人员重新生成您的客户机代码??EclipseJavaEEIDE。版本:Mars.2发行版(4.5.2)构建id:20160218-0600 WTP 1.2.1.20150819-2220能否发布指向WSDL walidation插件的链接,因为我的组织中存在代理设置问题,我无法运行Eclipse marketplace。显示了架构定义中的一些错误,能否发布架构?没有架构,我把我需要的东西都打进去了。我认为这已经足够了。