2013-12-12 144 views
0

上下文: 我使用wso2esb 4.8.0。
我有代理服務:
WSO2 ESB 4.8.0代理服務代碼轉換爲utf-8

<?xml version="1.0" encoding="UTF-8"?> 
<proxy xmlns="http://ws.apache.org/ns/synapse" 
     name="eProxy" 
     transports="https" 
     statistics="disable" 
     trace="disable" 
     startOnLoad="true"> 
    <target> 
     <inSequence> 
     </inSequence> 
     <outSequence> 
     <send/>   
     </outSequence> 
     <endpoint> 
     <address uri="http://10.24.74.53:8088/xxxService?WSDL"/> 
     </endpoint> 
    </target> 
    <publishWSDL uri="file://wso2esb-4.8.0/repository/mcc/resources/xxx.wsdl"/> 
    <description/> 
</proxy> 

問題:
xxxService反應是ISO-8859編碼和我想要改造這個響應爲UTF-8
我的第一個計算策略:
我使用XSLT中介:

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output encoding="UTF-8" /> 
    <xsl:template match="/"> 
     <result> 
      <xsl:value-of select="." /> 
     </result> 
    </xsl:template> 
</xsl:stylesheet> 

,但我有錯誤

ERROR NativeWorkerPool uncaught exception java.lang.stackoverflowerror com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.scanName(XMLEntityScanner.java:726) 

我的第二個計算策略:
我設置屬性在了順序:

<property name='CHARACTER_SET_ENCODING' scope='Axis2' value='UTF-8'/> 

,但我有錯誤

ERROR NativeWorkerPool uncaught exception java.lang.stackoverflowerror com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.scanName(XMLEntityScanner.java:726) 

我最後的計算策略:
我編寫自定義的調解員,但我不知道如何改變SoapEnvelope或SoapBody編碼

認爲您的幫助。

回答

0

要更改編碼和內容類型,看看ContentTypemessageType屬性:http://docs.wso2.org/display/ESB480/Generic+Properties

樣品值:text/xml; charset=ISO-8859-1

+0

認爲您的答覆。但contentType和messageType只關注傳入的請求。 與我的第二個接近:內容類型的變化,但肥皂體沒有轉換爲utf-8。 – user3096538