gpt4 book ai didi

java - 无法从 WSDL 创建 JAX-WS 服务

转载 作者:行者123 更新时间:2023-12-01 15:23:08 24 4
gpt4 key购买 nike

我有一个 WSDL 文档:

<definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://java.CAEServer"
xmlns:server="http://caeserver.caebeans.org"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://schemas.xmlsoap.org/wsdl/"
targetNamespace="http://java.CAEServer"
name="CAEInstanceImplService">

<types>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://caeserver.caebeans.org"
xmlns:test="http://example.org"
xmlns:wsa="http://www.w3.org/2005/08/addressing"
xmlns:serv="http://caeserver.caebeans.org"
attributeFormDefault="unqualified" elementFormDefault="qualified">

<xsd:element name="data" type="xsd:string"/>

<xsd:element name="parameter">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="text">
<xsd:complexType>
<xsd:attribute name="data" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="units">
<xsd:complexType>
<xsd:attribute name="data" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="comment">
<xsd:complexType>
<xsd:attribute name="data" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="enums" type="xsd:string"/>
<xsd:element name="default" type="xsd:int"/>
<xsd:element name="value" type="xsd:string"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string"/>
<xsd:attribute name="type" type="xsd:string"/>
<xsd:attribute name="visible" type="xsd:boolean"/>
</xsd:complexType>
</xsd:element>

<xsd:complexType name="languageData">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="name" type="xsd:string"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>

<xsd:element name="language">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="data" type="serv:languageData"/>
</xsd:sequence>
<!--<xsd:attribute name="xml:lang" type="xsd:string"/>-->
</xsd:complexType>
</xsd:element>

<xsd:element name="instance_ID" type="xsd:string"/>

<xsd:element name="problemCaebean">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="categories">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="category">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" ref="serv:parameter"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string"/>
<xsd:attribute name="data" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="resources">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" ref="serv:language"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string"/>
<xsd:attribute name="author" type="xsd:string"/>
<xsd:attribute name="version" type="xsd:decimal"/>
<xsd:attribute name="caebeanId" type="xsd:string"/>
</xsd:complexType>
</xsd:element>

<xsd:element name="caeProject">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="serv:problemCaebean"/>
<xsd:element name="logical">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="node">
<xsd:complexType>
<xsd:attribute name="id" type="xsd:string"/>
<xsd:attribute name="type" type="xsd:string"/>
<xsd:attribute name="condition" type="xsd:string"/>
<xsd:attribute name="execute" type="xsd:string"/>
<xsd:attribute name="x" type="xsd:int"/>
<xsd:attribute name="y" type="xsd:int"/>
</xsd:complexType>
</xsd:element>
<xsd:element maxOccurs="unbounded" name="edge">
<xsd:complexType>
<xsd:attribute name="source" type="xsd:string"/>
<xsd:attribute name="target" type="xsd:string"/>
<xsd:attribute name="when" type="xsd:boolean"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="physical">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="componentCaebean">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="input">
<xsd:complexType>
<xsd:attribute name="filename" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element maxOccurs="unbounded" name="output">
<xsd:complexType>
<xsd:attribute name="filename" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="jar-premode">
<xsd:complexType>
<xsd:attribute name="name" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="exec">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="param">
<xsd:complexType>
<xsd:attribute name="name" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string"/>
<xsd:attribute name="appname" type="xsd:string"/>
<xsd:attribute name="appversion" type="xsd:decimal"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string"/>
<xsd:attribute name="author" type="xsd:string"/>
<xsd:attribute name="version" type="xsd:decimal"/>
<xsd:attribute name="id" type="xsd:string"/>
</xsd:complexType>
</xsd:element>

<xsd:element name="Status">
<xsd:complexType>
<xsd:choice>
<xsd:element name="NOT_STARTED"/>
<xsd:element name="RUNNING"/>
<xsd:element name="HELD"/>
<xsd:element name="SUCCESSFULL"/>
<xsd:element name="FAILED"/>
</xsd:choice>
</xsd:complexType>
</xsd:element>

<xsd:element name="CurrentTime">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:dateTime">
<xsd:anyAttribute namespace="##other" processContents="lax"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>

<xsd:element name="TerminationTime" nillable="true">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:dateTime">
<xsd:anyAttribute namespace="##other" processContents="lax"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>

<xsd:element name="Description">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="serv:Status"/>
<xsd:element ref="serv:TerminationTime"/>
<xsd:element ref="serv:CurrentTime"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>

<!--
message used to create a new instance WS-Resource
-->
<xsd:element name="createInstance">
<xsd:complexType/>
</xsd:element>

<!--
the response, simply contains an EPR to the new instance
-->
<xsd:element name="createInstanceResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="instanceID" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>

<xsd:element name="submitJob">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="serv:instance_ID"/>
<xsd:element ref="serv:problemCaebean"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>

<xsd:element name="submitJobResponse">
<xsd:complexType>
<xsd:sequence>
<!--<xsd:element name="xml" type="xsd:string"/>-->
<xsd:element name="Result" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>

<xsd:element name="getStatus">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="instance_ID" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>

<xsd:element name="getStatusResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="serv:Status"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>

</xsd:schema>
</types>

<message name="SubmitJobRequest">
<part name="parameter" element="server:submitJob"/>
</message>

<message name="SubmitJobResponse">
<part name="parameter" element="server:submitJobResponse"/>
</message>

<message name="GetStatusRequest">
<part name="parameter" element="server:getStatus"/>
</message>

<message name="GetStatusResponse">
<part name="parameter" element="server:getStatusResponse"/>
</message>

<portType name="CAEInstance">
<operation name="SubmitJob">
<input message="tns:SubmitJobRequest"/>
<output message="tns:SubmitJobResponse"/>
</operation>
<operation name="GetStatus">
<input message="tns:GetStatusRequest"/>
<output message="tns:GetStatusResponse"/>
</operation>
</portType>

<binding name="CAEInstanceImplPortBinding" type="tns:CAEInstance">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
<operation name="SubmitJob">
<soap:operation soapAction="http://java.CAEServer/submitJob"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
<operation name="GetStatus">
<soap:operation soapAction="http://java.CAEServer/getStatus"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>

<service name="CAEInstanceImplService">
<port name="CAEInstanceImplPort" binding="tns:CAEInstanceImplPortBinding">
<soap:address location="http://127.0.0.1:9000/caeinstance"/>
</port>
</service>
</definitions>

我正在使用命令创建类型和服务定义

wsimport -keep -verbose ../src/main/resources/instance.wsdl

但是当我编译并运行我的项目并尝试从生成的 WSDL 编译客户端 stub 时,出现错误

parsing WSDL...


[ERROR] undefined element declaration 'ns1:instance_ID'
line 36 of http://localhost:9000/caeinstance?xsd=1

[ERROR] undefined element declaration 'ns1:Result'
line 49 of http://localhost:9000/caeinstance?xsd=1

我的 WSDL 有什么问题?

最佳答案

CXF 和 Eclipse 都提供 WSDL validator 。您应该通过其中之一运行您的 WSDL 并查看它的内容。

关于java - 无法从 WSDL 创建 JAX-WS 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10573203/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com