2014-04-11 23 views
4

我正在使用wso2esb 4.7.0和wso2dss 3.0.0 ..我在wso2dss中寫了一個查詢。它在dss中工作正常。也但是當我想在序列調解wso2esb 去解決它顯示錯誤如上RelayUtils在wso2esb中建立直通流錯誤時出錯

ERROR - RelayUtils Error while building Passthrough stream 
org.apache.axiom.om.OMException: com.ctc.wstx.exc.WstxEOFException: Unexpected EOF in prolog 
at [row,col {unknown-source}]: [1,0] 
    at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:296) 
    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:55) 
    at org.apache.synapse.transport.passthru.util.DeferredMessageBuilder.getDocument(DeferredMessageBuilder.java:118) 
    at org.apache.synapse.transport.passthru.util.RelayUtils.builldMessage(RelayUtils.java:116) 
    at org.apache.synapse.transport.passthru.util.RelayUtils.buildMessage(RelayUtils.java:91) 
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:62) 
    at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:114) 
    at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:232) 
    at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:443) 
    at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:166) 
    at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180) 
    at org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:222) 
    at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:679) 
Caused by: com.ctc.wstx.exc.WstxEOFException: Unexpected EOF in prolog 
at [row,col {unknown-source}]: [1,0] 
    at com.ctc.wstx.sr.StreamScanner.throwUnexpectedEOF(StreamScanner.java:677) 
    at com.ctc.wstx.sr.BasicStreamReader.handleEOF(BasicStreamReader.java:2116) 
    at com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:2022) 
    at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1114) 
    at org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper.next(XMLStreamReaderWrapper.java:225) 
    at org.apache.axiom.util.stax.dialect.DisallowDoctypeDeclStreamReaderWrapper.next(DisallowDoctypeDeclStreamReaderWrapper.java:34) 
    at org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper.next(XMLStreamReaderWrapper.java:225) 
    at org.apache.axiom.om.impl.builder.StAXOMBuilder.parserNext(StAXOMBuilder.java:681) 
    at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:214) 
    ... 20 more 

     . 
     . 

我的代理服務是:

<inSequence> 
     <property name="messageType" value="application/json" scope="axis2"/> 
     <property name="username" 
        expression="//username/text()" 
        scope="default" 
        type="STRING"/> 
     <property name="userid" 
        expression="//userid/text()" 
        scope="default" 
        type="STRING"/> 
     <log> 
      <property name="username" expression="get-property('username')"/> 
      <property name="userid" expression="get-property('userid')"/> 
     </log> 
     <payloadFactory media-type="xml"> 
      <format> 
       <p:trail_op xmlns:p="http://ws.wso2.org/dataservice"> 
        <p:username>$1</p:username> 
        <p:userid>$2</p:userid> 
       </p:trail_op> 
      </format> 
      <args> 
       <arg evaluator="xml" expression="get-property('username')"/> 
       <arg evaluator="xml" expression="get-property('userid')"/> 
      </args> 
     </payloadFactory> 
     <header name="Action" value=""/> 
     <property name="SOAPAction" value="" scope="transport"/> 
     <send receive="Capp_Login_seq1"> 
      <endpoint> 
       <address uri="http://192.168.1.23:9764/services/Capp_muser_dataservice/" 
         format="soap12"/> 
      </endpoint> 
     </send> 
     <log level="full"/> 
     </inSequence> 
     <outSequence> 
     <send/> 
     </outSequence> 

和順序是:

<sequence xmlns="http://ws.apache.org/ns/synapse" name="Capp_Login_seq1"> 
    <property name="messageType" value="application/json" scope="axis2"/> 
    <property xmlns:ns="http://org.apache.synapse/xsd" xmlns:s="http://ws.wso2.org/dataservice" name="userid" expression="get-property('userid')" scope="default" type="STRING"/> 
    <log> 
     <property xmlns:ns="http://org.apache.synapse/xsd" name="userid" expression="get-property('userid')"/> 
    </log> 
    <send/> 
</sequence> 

我發送請求如下:

curl -v -H "Accept:application/json" -H "Content-Type:application/json" -d '{"username":"Harry","userid":"347367127872701992"}' http://youtility-desktop:8282/services/Capp_LoginProxy 

我應該如何解決這個錯誤?請讓我知道..

+0

您發送的請求是什麼? – chanaka777

+0

curl -v -H「Accept:application/json」-H「Content-Type:application/json」-d'{「mailid」:「[email protected]」,phonenumber「:」999999999「}'http: // yourtility-desktop:8282/services/Capp_muser_Registration – user3129056

+0

你的日誌調解器怎麼樣?它們是否被打印? 你不能使用XPATH表達式來操縱json請求,試試這個'' 欲瞭解更多信息,請參閱[this](https://docs.wso2.org/display/ESB470/PayloadFactory+Mediator) – chanaka777

回答

0

我得到了同樣的問題在ESB 5和DAS 3.可以通過在/ axis2.xml位於ESB /庫/ conf目錄axis2.xml

添加相關messageFormatters和messageBuilders得到修復

在我的情況下,加入這兩個條目axis2.xml

messageFormatter的contentType = 「text/html的」 類= 「org.wso2.carbon.relay.ExpandingMessageFormatter」/>

messageBuilder的contentType =」 text/html「class =」org.wso2.carbon.relay.BinaryRelayBuilder「/>