IBM WebSphere JNDI 服务
java.naming.provider.url=iiop://myhost:9001
java.naming.factory.initial= com.ibm.websphere.naming.WsnInitialContextFactory
BEA WebLogic JNDI 服务
java.naming.provider.url=t3://myhost:7001
java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
websphere用法:
Hashtable ht = new Hashtable();
ht.put("java.naming.factory.initial", "com.ibm.ejs.ns.jndi.CNInitialContextFactory");
Context ctx = new InitialContext(ht);
DataSource ds = (DataSource)ctx.lookup("jdbc/Oracle");//JNDI服务名
weblogic中文解决问题方法:
得到oracle的字符集:
select * from v$nls_parameters where parameter='NLS_CHARACTERSET'
如果是ZHS16GBK,则JDBC的操作不需要转码;如果是us7ascii,则需要转码或者作相关配置
1).使用Thin Driver
如果使用Thin Driver,那么需要在查询数据库的时候将字符集由ISO转换为GBK,写入数据库的时候将字符集由GBK转换为ISO.
例如:String strSql="insert into tabA(A,B) values('1111','王超')";
strSql = new String(strSql.getBytes("GBK"), "ISO-8859-1");
2).使用OCI Driver
直接使用WebLogic提供的driver,在配置连接池时设置Properties属性:
http://dev2dev.bea.com.cn/techdoc/200311546.html
JSP文件之间不能正确传递中文数据,可以有两种方法解决.
其一:在web.xml里加上如下脚本:
<context-param>
<param-name>weblogic.httpd.inputCharset./*</param-name>
<param-value>GBK</param-value>
</context-param>
其二:在weblogic.xml里加上如下脚本:
<charset-params>
<input-charset>
<resource-path>/*</resource-path>
<java-charset-name>GBK</java-charset-name>
</input-charset>
</charset-params>