近期碰到一個編碼的問題,發現整個平臺都是用的GB2312,所以致使webservice調用時有些字不能正常接受。node
反編譯中間件的源碼以下:web
public static final String node2String(Node node, boolean isPreserveSpace) { if (node == null) return null; if (node.getNodeType() == 9) { node = ((Document)node).getDocumentElement(); } OutputFormat format = new OutputFormat(node.getOwnerDocument()); String strEncoding = System.getProperty("xml.encoding"); if (strEncoding != null) format.setEncoding(strEncoding); else { format.setEncoding("GB2312"); } format.setIndenting(false); format.setPreserveSpace(isPreserveSpace); StringWriter stringOut = new StringWriter(); XMLSerializer serial = new XMLSerializer(stringOut, format); try { serial.asDOMSerializer(); serial.serialize((Element)node); } catch (IOException ex) { throw new EOSFailure(ex); } return stringOut.toString(); }
由以上代碼得知,若是屬性xml.encoding爲空,則平臺編碼默認爲GB2312,因此得想辦法設置該屬性:tomcat
一、tomcat配置服務器
編輯startTomcat.cmd,找到以下配置:ide
set JAVA_OPTS=-Xms128m -Xmx512m -DEOSCipherProvider=SunJCE編碼
加上xml.ecoding的配置spa
set JAVA_OPTS=-Xms128m -Xmx512m -DEOSCipherProvider=SunJCE -Dxml.encoding=GBK3d
二、websphere6的配置,須要在websphere的管理控制檯中配置code
1)、選擇安裝了EOS應用的服務器orm
2)、選擇進程定義
3)、選擇JAVA虛擬機
4)、選擇JAVA虛擬機的定製屬性
5)、查看EOS的JVM環境變量配置
在這裏添加一個xml.encoding=GBK的屬性