★ 連接池配置問題
??? 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()
??? 僅在IE出現, 在FF里沒有問題, 需要以下2步才能撤掉消除這個問題????
??? 1. 設置Server, Protocols頁面里的HTTP, 去掉Enable Keepalives的復選框
??? 2. 在WEB-INF目錄下新建一個 weblogic.xml 文件, 內容如下:
<?
xml?version="1.0"?encoding="GBK"
?>
<
weblogic-web-app?
xmlns
="http://www.bea.com/ns/weblogic/90"
>
??
<
session-descriptor
>
????
<
cookie-name
>
jsessionid1
</
cookie-name
>
??
</
session-descriptor
>
</
weblogic-web-app
>
★ 圍繞字符集的問題匯總
????
??? 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下的顯示效果.
Tomcat 向 Weblogic 遷移的問題記錄