WSDL:没有为消息定义元素类型

时间:2012-06-13 09:35:31

标签: web-services wsdl axis2 bpel apache-ode

我正在使用Eclipse BPEL Designer插件创建服务编排,并且我自动生成的WSDL文件存在问题。

这是WSDL:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
   <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://ws.invocation.import" xmlns:vprop="http://docs.oasis-open.org/wsbpel/2.0/varprop" xmlns:wsdl="http://services.lolsystem.it" name="ImportOrchestration" targetNamespace="http://ws.invocation.import">

   <plnk:partnerLinkType name="ImportType">
      <plnk:role name="ImportRole" portType="wsdl:ImportServicePortType"/>
   </plnk:partnerLinkType>
   <import location="ImportModule.wsdl" namespace="http://services.italsystem.it"/>
<types>
   <schema xmlns="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://ws.invocation.import">

     <element name="ImportOrchestrationRequest" type="tns:ImportOrchestrationReqType">
           </element>

   <element name="singleEntry">
            <complexType>
                <sequence>
                    <element minOccurs="0" name="name" nillable="true" type="string"/>
                    <element minOccurs="0" name="content" nillable="true" type="base64Binary"/>
                </sequence>
            </complexType>
        </element>

              <element name="ImportOrchestrationResponse">
            <complexType>
                <sequence>
                    <element name="result" type="string"/>
                </sequence>
            </complexType>
        </element>

        <complexType name="ImportOrchestrationReqType">
            <sequence minOccurs="1" maxOccurs="unbounded">
                <element name="file" type="tns:SingleFile"></element>
            </sequence>
        </complexType>

        <complexType name="SingleFile">
            <sequence>
                <element name="name" type="string"></element>
                <element name="content" type="base64Binary"></element>
            </sequence>
        </complexType>
    </schema>
</types>


<message name="ImportOrchestrationRequestMessage">
    <part name="payload" type="tns:ImportOrchestrationReqType"/>
</message>
<message name="ImportOrchestrationResponseMessage">
    <part element="tns:ImportOrchestrationResponse" name="payload"/>
</message>


<!-- portType implemented by the ImportOrchestration BPEL process -->
<portType name="ImportOrchestration">
    <operation name="process">
        <input message="tns:ImportOrchestrationRequestMessage"/>
        <output message="tns:ImportOrchestrationResponseMessage"/>
    </operation>
</portType>   

<plnk:partnerLinkType name="ImportOrchestration">
    <plnk:role name="ImportOrchestrationProvider" portType="tns:ImportOrchestration"/>
</plnk:partnerLinkType>


<binding name="ImportOrchestrationBinding" type="tns:ImportOrchestration">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="process">
        <soap:operation soapAction="http://ws.invocation.import/process"/>
        <input>
            <soap:body use="literal"/>
        </input>
        <output>
            <soap:body use="literal"/>
        </output>
    </operation>
</binding>


<service name="ImportOrchestration">
    <port binding="tns:ImportOrchestrationBinding" name="ImportOrchestrationPort">
        <soap:address location="http://localhost:8080/ode/processes/ImportOrchestration"/>
    </port>
</service>
</definitions>

现在,问题在于Eclipse for Eclipse验证器WSDL已经很好地形成了。 我正在使用Apache ODE作为基于Axis2的BPEL引擎。 问题是当我尝试部署我的BPEL流程时,Axis引擎给我一个错误,它是:

“没有为消息ImportOrchestrationRequestMessage定义元素类型”

有人可以给我一些建议来理解这个错误以及如何纠正它吗? 提前谢谢:)

1 个答案:

答案 0 :(得分:5)

你能尝试以下吗? <message name="ImportOrchestrationRequestMessage"> <part name="payload" element="tns:ImportOrchestrationRequest"/> </message>

问题是你的绑定是文档文字,在这种情况下,应该使用“element”而不是“type”来配置消息部分

HTH