起因
今天在公司部署项目的时候,在Weblogic下部署服务的过程中遇到了Jsp页面乱码的问题,现将修复过程分享出来。[以下修复基于Weblogic_10.3.6.0、JDK为1.6环境]
问题描述
目前有一套代码,原本是跑在Tomcat上的,如今移植到Weblogic中去,JSP页面乱码、在Oracle中取出的数据都也出现了乱码。
修复过程
先检查以下文件
1. 检查系统i18n文件
- 检查Weblogic所处系统下的i18n文件是否正确
12 | LANG="en_US.UTF-8"SYSFONT="latarcyrheb-sun16" |
2. 检查并修改项目下的pom.xml
文件中如下,设置UTF-8编码[若不是Maven项目,请跳过],当前Maven项目Version:3.3.9
123456789101112131415161718192021222324252627 | <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> ... </properties><plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.5.1</version> <configuration> <source>${jdk.version}</source> <target>${jdk.version}</target> <showWarnings>true</showWarnings> <encoding>UTF-8</encoding> </configuration></plugin><!-- resource插件 --><plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>2.6</version> <configuration> <encoding>UTF-8</encoding> </configuration></plugin> |
3. 检查并修改项目WEB-INF下的web.xml:
1大专栏 Weblogic乱码解决过程ne">234567891011121314151617 | <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping><filter> |
4. 检查并修改项目WEB-INF下的weblogic.xml:
123456789101112 | <jsp-descriptor> <jsp-param> <param-name>encoding</param-name> <param-value>GBK</param-value> </jsp-param></jsp-descriptor><charset-params> <input-charset> <resource-path>/</resource-path> <java-charset-name>UTF-8</java-charset-name> </input-charset></charset-params> |
5. 检查并查看Weblogic的启动文件startWeblogic.sh,找到
12 | JAVA_OPTIONS="${JAVA_OPTIONS}"export JAVA_OPTIONS |
这一段,改成以下:
12 | JAVA_OPTIONS="${JAVA_OPTIONS} -Dfile.encoding=utf8"export JAVA_OPTIONS |
然后保存、重启服务:
1 | nohup ./startWeblogic & tail -f nohup.out |
总结
在此修复过程中,从项目源码、项目打包、Weblogic环境整个过程都检查了遍,对于项目部署乱码这块认识更加深刻,途中也找了查阅了相关资料,最终得以解决,在此将相关解决过程整合以便今后查阅。