2014-01-13 23 views
0

我試圖調用ESB的服務失序XSLT轉換,但我得到一個錯誤....XSLT轉換不會執行

我有一個WSO2 Data Services服務器返回XML,我已經成功地在ESB中進行代理。但是,當我加入失序....

<outSequence> 
    <log level="full"/> 
    <property name="messageType" value="text/xml" scope="axis2" type="STRING"/> 
    <xslt key="out_transform2"/> 
    <send/> 
    </outSequence> 

的XSLT是本地服務,並已使用PHP中的.xsl文件分別進行測試。我得到...

15:14:43508 [ - ] [PassThroughMessageProcessor-2] INFO要: http://www.w3.org/2005/08/addressing/anonymous,WSAction:, 的SOAPAction:,郵件ID: 甕:UUID:4e28dd11-6720-4f40- 9714-6fa7ebd5630f,方向:響應, MESSAGE =執行默認'fault'序列,ERROR_CODE = 0, ERROR_MESSAGE =無法使用以下值執行XSLT轉換:值 {name ='null',keyValue ='out_transform2'}針對源XPath : s11:Body/child :: [position()= 1] | S12:車身/子:: [位置()= 1] 原因:錯誤使用創建XSLT變壓器:值{名稱= '空', 的keyValue = 'out_transform2'},信封:

<?xml version='1.0' 
encoding='utf-8'?><soapenv:Envelope 
xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"><soapenv:Body><users 
xmlns="http://test.org"><users><user_id>1745</user_id><fname>john</fname> 
<lname>smith</lname></users><users><user_id>7461</user_id><fname>Happy</fname> 
... 
<lname>claus</lname></users></users></soapenv:Body></soapenv:Envelope> 
中介消息跟蹤器中的

...。 我的XSLT是內嵌的XML條目

<localEntry xmlns="http://ws.apache.org/ns/synapse" key="out_transform2"> 
     <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 
     <xsl:output method="text" encoding="utf-8" indent="yes"/> 
<!-- snipped content out here !-->  
     </xsl:stylesheet> 
</localEntry> 

任何想法?

回答

0

當WSO2找不到或無法加載XSLT時,您可以看到此錯誤。

就你而言,我可以看到用於命名本地條目的相同字符串「out_transform2」,並在XSLT中介器配置中引用它:它似乎是正確的。

我猜WSO2可以找到,但無法加載您的XSL,因爲本地條目中存在問題:您應該使用XML編輯器編輯文件系統上的文件out_transform2.xml並進行驗證。

+0

我已經測試了我的XSL作爲一個單獨的文件,它工作正常。我從'try it'得到的錯誤是.. org.apache.axis2.AxisFault:Read超時 user3190377