王朝网络
分享
 
 
 

weblogic.jar和Tomcat5.5中的servlet-api.jar也有包冲突!

王朝java/jsp·作者佚名  2006-01-31
宽屏版  字体: |||超大  

weblogic.jar和Tomcat5.5中的servlet-api.jar也有包冲突!

怪事天天有,见多了就不怪了。

EJB层基本搞定,以前测试EJB也都是写一个application测试的,都没问题。

昨天把WEB层框架做好开始写代码,但怪事就来了。打开JSP就出现下面的错误

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: javax/ejb/EJBObject

org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:846)

org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)

org.apache.jsp.index_jsp._jspService(org.apache.jsp.index_jsp:154)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:99)

javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:325)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:245)

javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

web.Filter.ChangeCharsetFilter.doFilter(ChangeCharsetFilter.java:58)

root cause

java.lang.NoClassDefFoundError: javax/ejb/EJBObject

java.lang.ClassLoader.defineClass1(Native Method)

java.lang.ClassLoader.defineClass(Unknown Source)

java.security.SecureClassLoader.defineClass(Unknown Source)

org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1626)

org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:850)

org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1299)

org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1181)

java.lang.ClassLoader.loadClassInternal(Unknown Source)

caiwu.data.Department.identify(Department.java:418)

org.apache.jsp.index_jsp._jspService(org.apache.jsp.index_jsp:143)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:99)

javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:325)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:245)

javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

web.Filter.ChangeCharsetFilter.doFilter(ChangeCharsetFilter.java:58)

note The full stack trace of the root cause is available in the Apache Tomcat/5.5.7 logs.

java.lang.NoClassDefFoundError: javax/ejb/EJBObject ??????????????

怎么会找不到EJBObject类呢?检查了一下WEB-INF\LIB目录,的确有weblogic.jar呀!?

去baidu搜索了一下,看到有篇贴说是classpath中没加dr.jar和tools.jar。

又检查了一下classpath,也加了!

打开Tomcat的日志,发现有这么一行

2005-3-6 10:44:02 org.apache.catalina.loader.WebappClassLoader validateJarFile

信息: validateJarFile(D:\jbProject\sf\web\WEB-INF\lib\weblogic.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class

See Servlet Spec 2.3, section 9.7.2 是什么东东,懒得去查了。

又去baidu搜,找到这篇说得比较相似的

http://blog.csdn.net/china2wto/archive/2004/12/09/210527.aspx

内容如下。

tomcat5的common/lib目录下jar包和WEB/lib下jar包冲突问题

我在学习struts过程中,启动tomcat5,基本正常,打开普通的jsp也正常,但打开与struts相关的jsp报错如下:

javax.servlet.ServletException: javax.servlet.jsp.PageContext.handlePageException(Ljava/lang/Throwable;)V

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:256)

javax.servlet.http.HttpServlet.service(HttpServlet.java:868)

root cause

java.lang.NoSuchMethodError: javax.servlet.jsp.PageContext.handlePageException(Ljava/lang/Throwable;)V

org.apache.jsp.manager_005findex_jsp._jspService(manager_005findex_jsp.java:84)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)

javax.servlet.http.HttpServlet.service(HttpServlet.java:868)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)

javax.servlet.http.HttpServlet.service(HttpServlet.java:868)

查看tomcat5 console monitor 发现有些异常:

信息: validateJarFile(C:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\soos\WEB-INF\lib\servlet-api.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class

这才想起,我在tomcat/common/lib/中也放入了j2ee.jar等包,去common/lib中处不必要的包后,保证tomcat/common/lib/和WEB-INF/lib这两个目录下的jar没有重复的,问题解决。

原来,tomcat 启动后先将tomcat/common/lib目录下的jar包全部读入内存,如果webapps目录里的应用程序中WEB-INF/lib目录下有相同的包,将无法加载,估计不同版本的包之间也会造成类似问题。因此建议尽量不要把jar包放入tomcat/common/lib目录下,应该放入WEB-INF/lib目录下。

看了一下tomcat/common/lib/,没有j2ee.jar,也没有weblogic.jar呀。

试着删除web-inf\lib目录下的weblogic.jar。

这次Tomcat日志中没有了上面那个出错,但打开jsp时还是和上面一样的错

java.lang.NoClassDefFoundError: javax/ejb/EJBObject

这时又回去查tomcat日志。注意到有这么一句

Offending class: javax/servlet/Servlet.class

联想上面提到那篇blog的内容,知道原因了(红字部分)。

用winRAR打开Tomcat5.5/common/lib/servlet-api.jar和web-inf\lib\weblogic.jar,发现里面有相同的包javax/servlet/*。

原因找出了就好办多了。

在winRAR中删除web-inf\lib\weblogic.jar中的javax/servlet/包。重启Tomcat,正常了!

但问题还没得到彻底解决,因为在JB中rebuild项目时又把win-inf\lib目录下的jar还原回去了!

真麻烦,干脆斩草除根:

在web模块的属性窗口中改设置:webModule->Properties: content \ Dependencies,把WebLogic 8.x Client改成[Execude All]。再把\bea\weblogic81\server\lib下的二个文件(weblogic.jar,webservices.jar)拷贝到Tomcat5.5/common/lib/中(这时才发现weblogic.jar有36M之巨,难怪我第次rebuild都要等N久,硬盘逛响了!)。

如果现在就去启动Tomcat,你会发现连Tomcat都罢工了!

为什么?

因为tomcat 启动后先将tomcat/common/lib目录下的jar包全部读入内存, 这时tomcat/common/lib下原来的servlet-api.jar和刚才拷贝进去的weblogic.jar中都包含有相同的包javax/servlet/,Tomcat加载时发现有重复的就退出了。

最后一步:

删除tomcat/common/lib/servlet-api.jar 或是用winRAR打开tomcat/common/libweblogic.jar删除其中的javax/servlet目录。

启动Tomcat,问题解决!

这个小问题又浪费了半天时间。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有