SOAPProcessingException возникла при выполнении артефакта в WSO2 ESB - PullRequest
1 голос
/ 29 мая 2019

Я использовал WSO2 ESB 5.0.Я использовал две конечные точки мыла, чтобы получить ответ.Ниже приведен код прокси-сервиса.

 <?xml version="1.0" encoding="UTF-8"?>
<inSequence xmlns="http://ws.apache.org/ns/synapse">
    <log/>
    <property expression="//sam:getCertificateID/sam:vehicleNumber"
        name="getVehicleNo" scope="default" type="STRING" xmlns:sam="http://sample.esb.org"/>
    <log>
        <property expression="get-property('default','getVehicleNo')" name="VehicleNo"/>
    </log>
    <call>
        <endpoint>
            <wsdl port="EmissionTestServiceHttpSoap11Endpoint"
                service="EmissionTestService" uri="http://172.17.0.1:9763/services/EmissionTestService?wsdl"/>
        </endpoint>
    </call>
    <property expression="//ns:getCertificateIDResponse/ns:return"
        name="getCertificateIDResponse" scope="default" type="STRING" xmlns:ns="http://sample.esb.org"/>
    <log>
        <property
            expression="get-property('default','getCertificateIDResponse')" name="CertificateID"/>
    </log>
    <payloadFactory media-type="xml">
        <format>
            <soapenv:Envelope xmlns:sam="http://sample.esb.org" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
                <soapenv:Header/>
                <soapenv:Body>
                    <sam:getPolicyID>
                        <sam:vehicleNumber>$1</sam:vehicleNumber>
                    </sam:getPolicyID>
                </soapenv:Body>
            </soapenv:Envelope>
        </format>
        <args>
            <arg evaluator="xml" expression="get-property('default','getVehicleNo')"/>
        </args>
    </payloadFactory>
    <log/>
    <property name="messageType" scope="axis2" type="STRING" value="application/soap+xml"/>
    <call>
        <endpoint>
            <wsdl port="InsuranceServiceHttpSoap11Endpoint"
                service="InsuranceService" uri="http://172.17.0.1:9763/services/InsuranceService?wsdl"/>
        </endpoint>
    </call>
    <property expression="//ns:getPolicyIDResponse/ns:return"
        name="getPolicyIDResponse" scope="default" type="STRING" xmlns:ns="http://sample.esb.org"/>
    <log>
        <property
            expression="get-property('default','getPolicyIDResponse')" name="PolicyID"/>
    </log>
</inSequence>

Первая конечная точка работает нормально и выдала определенные сообщения журнала.Но при вызове второй конечной точки появляется сообщение об ошибке ниже.

Caused by: org.apache.axiom.soap.SOAPProcessingException: First Element must contain the local name, Envelope , but found faultstring
    at org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.constructNode(StAXSOAPModelBuilder.java:305)
    at org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.createOMElement(StAXSOAPModelBuilder.java:252)
    at org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.createNextOMElement(StAXSOAPModelBuilder.java:234)
    at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:249)
    at org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.getSOAPEnvelope(StAXSOAPModelBuilder.java:204)
    at org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.<init>(StAXSOAPModelBuilder.java:154)
    at org.apache.axiom.om.impl.AbstractOMMetaFactory.createStAXSOAPModelBuilder(AbstractOMMetaFactory.java:73)
    at org.apache.axiom.om.impl.AbstractOMMetaFactory.createSOAPModelBuilder(AbstractOMMetaFactory.java:79)
    at org.apache.axiom.om.OMXMLBuilderFactory.createSOAPModelBuilder(OMXMLBuilderFactory.java:196)
    at org.apache.axis2.builder.SOAPBuilder.processDocument(SOAPBuilder.java:65)
    at org.apache.synapse.transport.passthru.util.DeferredMessageBuilder.getDocument(DeferredMessageBuilder.java:148)
    at org.apache.synapse.transport.passthru.util.RelayUtils.builldMessage(RelayUtils.java:137)
    ... 14 more

Можете ли вы помочь мне решить эту проблему.Любая помощь или обходные пути действительно приветствуются.

1 Ответ

0 голосов
/ 29 мая 2019

Ваша конечная точка не возвращает мыльный конверт.Вы можете увидеть, что происходит, если вы установили «configure-> logging-> apache.synapse.tranport.http.wire» в значение «debug».

Поскольку конечная точка не возвращает SOAP, но, вероятно, просто старый XML выможно попробовать установить

<property name="messageType" value="application/xml" scope="axis2"/>
<property name="ContentType" value="application/xml" scope="axis2"/>

перед отправкой сообщения.

...