2013-01-25 78 views
0

我想獲得通過WSO2 ESB序列從WSO2數據服務的一些數據如下錯誤而從WSO2 ESB序列調用WSO2數據服務

<sequence xmlns="http://ws.apache.org/ns/synapse" name="ConcurGetSAEExtractFlow"> 
    <log level="custom"> 
     <property name="Debugging" value="ConcurGetSAEExtractFlow" /> 
    </log> 
    <xslt key="GetConcurSAE_Extract_Transformation" /> 
    <property name="post-data-service-sequence" value="ConcurTransformSAEExtractFlow" /> 
    <property name="OUT_ONLY" value="false" /> 
    <send receive="DataServiceInvocationErrorFlow"> 
     <endpoint key="ConcurDataServiceEndpoint" /> 
    </send> 
    <description /> 
</sequence> 

XSLT轉換GetConcurSAE_Extract_Transformation是如下

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:dat="http://ws.wso2.org/dataservice" xmlns:fn="http://www.w3.org/2005/02/xpath-functions" version="1.0"> 
    <xsl:template match="/"> 
     <xsl:element name="dat:GetConcurSAEExtract">    
     </xsl:element> 
    </xsl:template> 
</xsl:stylesheet> 

正如所看到的那樣,服務沒有輸入映射,並且提供了輸出映射。我已經在wso2 dss「試用此服務」中測試過該服務,並且運行良好。 但是,而當我試圖通過WSO2 ESB通過代理來運行這個我收到下面的錯誤塊

TID: [] [WSO2 ESB] [2013-01-25 01:26:24,244] INFO {org.apache.synapse.mediators.builtin.LogMediator} - Debugging = ConcurGetSAEExtractFlow {org.apache.synapse.mediators.builtin.LogMediator} 
TID: [] [WSO2 ESB] [2013-01-25 01:26:24,252] WARN {org.apache.synapse.transport.nhttp.ClientHandler} - Received an internal server error : Internal Server Error For : 10.12.46.5:9764 For Request : Axis2Request [Message ID : urn:uuid:2b34a4c3-796e-410b-aa62-47f28f88f8b7] [Status Completed : true] [Status SendingCompleted : true] {org.apache.synapse.transport.nhttp.ClientHandler} 
TID: [] [WSO2 ESB] [2013-01-25 01:26:24,253] INFO {org.apache.axis2.builder.BuilderUtil} - OMException in getSOAPBuilder {org.apache.axis2.builder.BuilderUtil} 
org.apache.axiom.soap.SOAPProcessingException: First Element must contain the local name, Envelope , but found html 
     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.soap.impl.builder.StAXSOAPModelBuilder.<init>(StAXSOAPModelBuilder.java:140) 
     at org.apache.axis2.builder.BuilderUtil.getSOAPBuilder(BuilderUtil.java:728) 
     at org.apache.axis2.transport.TransportUtils.createDocumentElement(TransportUtils.java:197) 
     at org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:145) 
     at org.apache.synapse.transport.nhttp.ClientWorker.run(ClientWorker.java:223) 
     at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
     at java.lang.Thread.run(Thread.java:662) 
TID: [] [WSO2 ESB] [2013-01-25 01:26:24,254] INFO {org.apache.axis2.builder.BuilderUtil} - Remaining input stream :[] {org.apache.axis2.builder.BuilderUtil} 
TID: [] [WSO2 ESB] [2013-01-25 01:26:24,254] WARN {org.apache.synapse.transport.nhttp.ClientWorker} - Unexpected response received. HTTP response code : 500 HTTP status : Internal Server Error exception : First Element must contain the local name, Envelope , but found html {org.apache.synapse.transport.nhttp.ClientWorker} 
TID: [] [WSO2 ESB] [2013-01-25 01:26:24,273] INFO {org.apache.synapse.mediators.builtin.LogMediator} - status = success response from DSS {org.apache.synapse.mediators.builtin.LogMediator} 

我無法找出什麼地方出了錯,導致這種error.Please如果任何人都有這個想法。

回答

0

您不是在用XSLT複製肥皂信封和標題。一個<log level="full"/>之前,你的<xslt>電話後做出一次,然後你會看到你的XSLT也將獲得<soap:envelope><soap:body>...

所以你必須把在輸出爲好。

僞代碼:

<xsl:template match="envelope|body"> 
    <xsl:copy> 
     <xsl:apply-templates/> 
    </xsl:copy/> 
</xsl:template> 
+0

我做Thanks.The變化如下 '的' 但是,這仍然給了問題,現在它在XSLT失敗我想通過數據服務(選擇查詢)從數據庫中獲取選定的值並執行其他轉換。該序列插入數據,然後調用當前序列以獲取數據。請讓我知道是否缺少任何內容。 – user1662039