Java WEB应用环境切换遇到问题及方案

目标:
1.数据库由mysql5切到sybase15.
2.web服务器由tomcat6切到websphere7.

前期准备:
1.官网下载工具
2.安装

过程:
1.数据结构切换至sybase15
2.应用部署至websphere7

问题:
1.sybase15服务器端乱码,客户端乱码。
服务端乱码是因为服务端使用的字符集不支持中文,所以改服务端的字符集为支持中文的cp936。
步骤:
以下是服务端修改时候的步骤,使用isql查看
--
-- 1.查看字符集,是否含有cp936
--
use master
go
select id,name from syscharsets
go

--
-- 2.查看当前使用的缺省字符集,与syscharsets.id关联,默认是2(cp850)
--
sp_configure "default char"
go

--
-- 3.无cp936字符集,安装
--
-- 进入目录C:\sybase\charsets\cp936 
-- 运行命令 charset -Usa -P –SDELL binary.srt cp936
-- eg:charset -Usa -Psybase -SPCOS08041711 binary.srt cp936
-- 运行完成后,系统就安装了cp936字符集

--
-- 3.1 【备用】无cp950字符集,安装
--
-- 进入目录C:\sybase\charsets\cp950 
-- 运行命令 charset -Usa -P –SDELL binary.srt cp950
-- eg:charset -Usa -Psybase -SPCOS08041711 binary.srt cp950
-- 运行完成后,系统就安装了cp936字符集


--
-- 4. 重复操作1,验证是否确实安装了cp936字符集,
-- 记住其ID(cp936 为171,cp950为165)
--


--
-- 5.把系统当前缺省字符集设置为cp936
--
sp_configure "default char",171
go

-- 6.重启sybase生效


客户端出现字符集不能转换异常,解决方法:

 
--
-- 查看服务端字符集
--
sp_helpsort
go
-- 查看客户端字符集
select @@client_csname
go

-- 改动客户端的字符集和客户端一致




2.websphere安装应用后,访问JSP403错误。
删除WEB应用中的 jsf-api.jar,jsf-impl.jar,jstl-1.2.jar 这三个JAR。
3.采用hibernate c3po连接池使用sybase后,A ResourcePool could not acquire a resource from its primary factory or source错误。
可能和驱动包有关,我用的jconn3jar,用jconn4.jar时候正常过,后来就都不行了,So采用的4,让容器管理数据源。
4.  was 7.00011中sybase 使用JNDI会出现
【Caused by: java.sql.SQLException: JZ0PA: 已取消查询,响应被放弃。取消指令可能由连接上的另一语句发出】错误。
这是因为was出现的BUG,解决方案是去官网下载相应版本的补丁包安装,错误代号是08945,版本的7的完整补丁包7.0.0-WS-WAS-WinX32-FP0000013.pak。

5.was中使用AJAX时候中文乱码
使用JS的encodeURI方法转换。

源地址连接: http://blog.sina.com.cn/s/blog_4e3d124f0101a00x.html

猜你喜欢

转载自ttling.iteye.com/blog/1881842