Tomcat 向 Weblogic 迁移的问题记录

★ 连接池配置问题
    spring的datasource在tomcat里配置为:
    <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
     <property name="jndiName">
         <value>java:comp/env/dsName</value>
     </property>
 </bean>   
   
    在weblogic里需要配置为
    <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
     <property name="jndiName">
         <value>dsName</value>
     </property>
 </bean>   
   
   
   
    润乾报表的reportDefine在tomcat下配置为:
    <config>
      <name>JNDIPrefix</name>
      <value>java:comp/env</value>
    </config>
    <config>
      <name>dataSource</name>
      <value>dsName,oracle</value>
    </config>
   
    在weblogic里修改为:
    <config>
      <name>JNDIPrefix</name>
      <value></value>
    </config>
   
   
    则weblogic里jndi连接池的jndi资源名称应该配置为:
        dsName
        并且必须指定target server , 如: exmple server
       
   
        
★ getServletContext()
    改为
    getServletConfig().getServletContext()
   

★ NullPointerException in initSessionInfo()
    似乎是weblogic9.2在IE里的bug? 在FF里没有问题
   
    设置Server, Protocols页面里的HTTP, 去掉Enable Keepalives的复选框
   


★ 围绕字符集的问题汇总
   
    web.xml
        问题描述:
            文件本身是UTF-8格式时, Tomcat能够解析, Weblogic启动失败, 提示: VALIDATION PROBLEMS WERE FOUND    
       
        解决方法:
            用window的记事本打开web.xml,另存为ANSI格式( 由于当前是中文操作系统, 所以实际编码为GBK )       
            同时修改第一行字符集信息: <?xml version="1.0" encoding="UTF-8"?>
            由UTF-8改为GBK, 否则Weblogic还是解析失败.
           
           
            比较奇怪的是UltraEdit竟然也能识别encoding设置,如果文件是ANSI格式,而encoding设置为UTF-8,则中文显示为乱码! 设成GBK就好了
       
        提示: Eclipse里所有xml格式默认为UTF-8, 并且不支持encoding设置, 所以打开GBK的web.xml还是乱码
            所以Weblogic不支持web.xml为UTF-8格式是个缺陷?
           
            这个问题也许与web.xml的version="2.4"有关? 可以把相关的配置改成Servlet2.3的格式试试(待测试)
            总之用Weblogic有小麻烦
       
       
    jsp, include, 与 pageEncoding
        问题描述:
            在main.jsp中include另外一个part.jsp页面, 这些文件都是UTF-8格式的,
            并且设置 <%@ page contentType="text/html;charset=UTF-8" %> ,则pageEncoding应该默认与contentType里的charset相同, 为UTF-8
              
            如果被include的part.jsp的文件格式是UTF-8的, 则不管是哪种include方式, 都会导致最终输出的页面里多出"FF FE"字节,
            这些不能显示的字符后面如果是<div> <table> 等html的块元素, 会导致IE等浏览器先换行处理, 再显示<div> <table>
            最终的效果就是页面多出一些奇怪的空行.
           
            2个问题在Tomcat和Weblogic里都有.
           
        解决方法:
            把被include的part.jsp文件改为GBK格式的(用记事本打开,另存为,指定ANSI即可)
            但是这样会引起中文乱码的问题, 需要设置 part.jsp 的 pageEncoding="GBK" 才行!


设置pageEncoding又会引起下面的问题:
            main.jsp和part.jsp在Weblogic里, 有些情况(还不太明确)不能同时配置 pageEncoding
           
       
        解决方法:
            只在被include的part.jsp里配置pageEncoding="GBK"
       
        遗留问题:
            在Weblogic里, 只需要设置被include的jsp页面为ANSI, 并且设置 pageEncoding 即可解决问题.
           
            但是Tomcat里, 如果JSP都是UTF-8格式, 不用设置pageEncoding, 大部分页面没有问题, 只是某些页面有问题.
            但是这些有问题的页面必须都设置为GBK才能解决, 包括main.jsp, part.jsp, 如果用了struts tiles,则tiles相关的文件也要设置成GBK!
            由于在Weblogic下不能同时配置pageEncoding, 所以看项目情况, 可以放弃Tomcat下的显示效果.      

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值