Произошло исключение SOAPProcessingException при выполнении артефакта в WSO2 ESB

Я использовал 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

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


person Lakshitha Gihan    schedule 29.05.2019    source источник


Ответы (1)


Ваша конечная точка не возвращает мыльный конверт. Вы можете увидеть, что происходит, если вы установите «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"/>

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

person Jan    schedule 29.05.2019