一、开发环境 windows server 2003; weblogic 9.2; jdk 1.5; 二、选择 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。 ②若在上一个问题选择了 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。 Servlet 2.3 规范生成的 web.xml 头部:
- <?xmlversion="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 头部:...
- <?xmlversion="1.0"encoding="UTF-8"?>
- <web-appversion="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>
- ...
- </web-app>
Servlet 2.5 规范生成的 web.xml 头部:...
- <?xmlversion="1.0"encoding="UTF-8"?>
- <web-appversion="2.5"xmlns="http://java.sun.com/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
- http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
- <web-app>
- ...
- </web-app>
二、安装/配置环境(weblogic) 参考(配置Weblogic9.x 图解说明 以及和myEclipse集成: ); 三、注意问题 1、启动时报错:...
- The error is weblogic.descriptor.DescriptorException: Unmarshaller failed
The error is weblogic.descriptor.DescriptorException: Unmarshaller failed问题原因:web.xml文件的Schema(XSD)版本错误,weblogic9.2只支持到Servlet 2.4 规范生成的 web.xml 头部。 解决方案:web.xml文件的头部换成Servlet 2.4 规范生成的 web.xml 头部即可。 2、运行时报错:
- Error 404--Not Found
- From RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1:
- 10.4.5404 Not Found
- The server has not found anything matching the Request-URI....
Error 404--Not Found From RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1:10.4.5 404 Not FoundThe server has not found anything matching the Request-URI....问题原因:domains\<domainName>\config\config.xml配置有误。 解决方案:找到domains\<domainName>\目录下面的servers文件夹,将其删除即可(此文件夹为启动服务器时自动生成的文件夹,会自动生成项目部署的相关配置,并且在新生成的servers\domain_bak\config_prev\目录下会备份上次的配置文件config.xml)。