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");进行转码。

 

你可能感兴趣的:(Web,linux,Ajax,weblogic,ibatis)