weblogic10 解析jaxp问题解决(以及GBK的字符集问题)
weblogic默认使用自己的jaxp解析方式,而tomcat下使用apache的jaxp方式,一般在xercesImpl.jar下
解决方式:
1:在WEB-INF\weblogic.xml中增加
?? ? ?<container-descriptor>
<prefer-web-inf-classes>true</prefer-web-inf-classes>
</container-descriptor>让weblogic默认使用web应用自己的xml解析方式
2:但是weblogic编译jsp的时候就会找apache的jaxp方式。这样就需要修改CLASSPATH,将我们的jar放在前面
?? ?修改startWeblogic.cmd
?? ?加入
SET LIB_PATH=XXX\jar
SET LIB_CLASSPATH=%LIB_PATH%\serializer.jar;%LIB_PATH%\xalan.jar;%LIB_PATH%\xercesImpl.jar;%LIB_PATH%\ibatis\xml-apis.jar;%LIB_PATH%\xsltc.jar
SET CLASSPATH=%LIB_CLASSPATH%;%CLASSPATH%
?
如果是在linux下部署的,则需要修改startWeblogic.sh
?
另外在weblogic集群环境下字符集为GBK的修改方式:
1:保证linux字符集为zh_CN.GBK
2:重要的是修改weblogic代理web应用下的weblogic.xml,增加?
<charset-params>?
?? ?<input-charset>?
?? ? ?<resource-path>/*</resource-path>?
?? ? ?<java-charset-name>GBK</java-charset-name>?
?? ?</input-charset>?
??</charset-params>
如果应用中有ajax,并且默认字符集为GBK,还是需要单独处理。
一般前台将中文参数改为
var a = encodeURI(encodeURI("中文参数"));
后台接收端使用?id = java.net.URLDecoder.decode(id, "UTF-8");进行转码。
?