Bug 45785 - ClassCastException if directory ending with .jar exists in WEB-INF/lib
来源:互联网 发布:java教学视频哪个好 编辑:程序博客网 时间:2024/06/04 01:11
Andreas Sahlbach 2008-09-11 12:22:35 EDT
Exception occurs if there is a directory in WEB-INF/lib having a .jar ending(e.g. foo.jar). Don't know if it makes sense to create such a dir inWEB-INF/lib, in my case a bug in another tool created such a dir. But in any case: Tomcat should not crash because of such a directory, IMHO.java.lang.ClassCastException: org.apache.naming.resources.FileDirContext cannotbe cast to org.apache.naming.resources.Resource atorg.apache.catalina.util.ExtensionValidator.validateApplication(ExtensionValidator.java:182) atorg.apache.catalina.core.StandardContext.start(StandardContext.java:4167) atorg.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525) atorg.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:627) atorg.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149) atorg.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311) atorg.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053) at org.apache.catalina.core.StandardHost.start(StandardHost.java:719) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) at org.apache.catalina.core.StandardService.start(StandardService.java:516) at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) at org.apache.catalina.startup.Catalina.start(Catalina.java:578) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Comment 1 Mark Thomas 2008-09-14 13:03:54 EDT
Comment 2 Mark Thomas 2008-09-19 03:59:54 EDT
This has been fixed in 6.0.x and will be included in 6.0.19 onwards.
Comment 3 Rolf Wojtech 2009-07-07 00:35:40 EDT
Created an attachment (id=23934) [details]Add support for directories with name ending on .jarWhile the specific case (directory called .jar in WEB-INF/lib) has been fixed,two other cases remain in ExtensionValidator.Therefore I reopened this bug:We're using an exploded deployment mechanism which uses extracted jar files infolders called jarname.jar. The eclipse projects build directly into thosefolders.However when adding these projects to a jboss launch configuration, whichresults in a jarname.jar folder (not file) to be part of the classpath, JBosswill fail because ExtensionValidator tries to treat the jarname.jar folder as afile.ExtensionValidator only checks if a java.io.File endsWith(".jar") but it failsto check if it is an actual file, not a directory.I attached a proposed fix (I only added the !item.isDirectory() and!files[i].isDirectory() )I ran into other JBoss problems after fixing this which means that this doesnot really affect me. It may not be popular to name directories something.jarbut in the cases of exploded deployment this seems normal. In any case my patchdoes not affect the normal usage of actual .jar files so I see no reason not toinclude it.
Comment 4 Rolf Wojtech 2009-07-07 00:36:28 EDT
Reopened due to additional problems with directories called somename.jar
Comment 5 Mark Thomas 2009-09-09 09:21:46 EDT
I have fixed trunk and proposed the same fix for 6.0.x based on your patch.Many thanks.
Comment 6 Mark Thomas 2009-10-03 10:35:29 EDT
This has been fixed in 6.0.21 and will be included in 6.0.21 onwards.
2009-07-07 00:35 EDT,Rolf Wojtech Details
Add an attachment (proposed patch, testcase, etc.)
https://issues.apache.org/bugzilla/show_bug.cgi?id=45785
- Bug 45785 - ClassCastException if directory ending with .jar exists in WEB-INF/lib
- myeclipse web project external jar 发布到 web-inf lib
- WEB-INF/lib/servlet-api.jar not loaded
- WEB-INF/lib/servlet-api.jar not loaded
- WEB-INF/lib/servlet-api.jar not loaded
- WEB-INF/lib/servlet-api.jar not loaded
- tomcat发布时,WEB-INF/lib下没有jar包
- eclipse neno 将jar包自动导入WEB-INF\lib
- Make Tomcat Ignore Servlet in WEB-INF/LIB
- validateJarFile(C:/*/WEB-INF/lib/javaee.jar) - jar not loaded. See Servlet Spec 2.3
- validateJarFile(C:/*/WEB-INF/lib/javaee.jar) - jar not loaded. See Servlet Spec 2.3
- Struts2 Unable to load configuration. - bean - jar ..... WEB-INF/lib/struts2-core-2.1.2.jar!/struts-
- validateJarFile(C:/*/WEB-INF/lib/javaee.jar) - jar not loaded. See Servlet Spec 2.3
- Failed to scan JAR [jndi:/localhost/WEB-INF/lib/oracle-jdbc-9.2.0.8.jar]
- 启动Tomcat报WEB-INF\lib\j2ee.jar jar not loaded异常的解决办法
- 启动Tomcat报WEB-INF\lib\j2ee.jar jar not loaded异常的解决办法
- Eclipse for javaee中开发web项目,jar包必须放到/WEB-INF/lib文件夹下
- maven管理Java web项目WEB-INF/lib中jar包不能被引入的问题解决
- Java/JSP下的开源Grid/Table实现汇总
- 关于ext2文件系统支持的最大文件大小
- 用户名表管理地区表,显示二级双地区信息
- JSP教程
- 找不到文件或程序集名称"System.Data.SqlServerCe,
- Bug 45785 - ClassCastException if directory ending with .jar exists in WEB-INF/lib
- C# webservice调用方法总结
- Window环境下使用C#调用VBScript、JavaScript等脚本
- 淘宝的中级商业阶段
- Delphi中获取Unix时间戳及注意事项
- Openfire代码阅读之三--ClassLoader
- 想透彻,写清楚,讲明白
- 飞鸽传书的个人性格
- Flex导出PDF研究报告。