Eclipse 3.2 + MyEclipse 5.0GA + WebLogic 9.2

edagarli發表於2014-03-09

選擇 WebLogic 9.2 的原因

WebLogic 8 支援的是 J2EE 1.3,也就是 Servlet 2.3 規範。若在 MyEclipse 中建立 Web Project 時選擇了 J2EE 1.4[default],在部署的時候就會出現異常,提示部署描述符 web.xml 是畸形的,也就是未通過 DTD 檢驗。因為 J2EE 1.4 使用的是 Servlet 2.4 規範,這直接體現在 web.xml 部署描述符的頭部引用中。這就是有些朋友遇到的,部署在 Tomcat 和 JBoss 中能夠執行的 JSP 程式,部署到 WebLogic 8 就無法執行的原因之一。解決這個問題,需要將 WebLogic 升級到 9.2 版本;或者使用 J2EE 1.3

Servlet 2.3 規範生成的 web.xml 頭部:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
...
</web-app>


Servlet 2.4 規範生成的 web.xml 頭部:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
...
</web-app>


若在上一個問題選擇了 J2EE 1.3 進行開發後,在部署時會出現另外的異常,提示Unsupported major.minor version 49.0”—— 又是版本問題,這次是由於 JDK 版本不支援造成的。WebLogic 8 不支援 JDK 1.5,由 JDK 1.5 編譯的程式無法部署到只支援 JDK 1.4 的伺服器上執行。解決的辦法也有兩個:用 JDK 1.4 重新編譯;或者換用支援 JDK 1.5 的伺服器,也就是升級到 WebLogic 9.2

相關文章