2013-12-12 95 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