Tomcat 向 Weblogic 遷移的問題記錄

環境爲: 中文WindowsXP SP2, Tomcat5.5, Weblogic9.2, JDK1.5

★ 連接池配置問題
    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下的顯示效果. 

轉自:JXC(http://blog.csdn.net/jxc/

發佈了84 篇原創文章 · 獲贊 2 · 訪問量 27萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章