Tomcat 6无法从WEB-INF/lib加载jar [英] Tomcat 6 not loading jars from WEB-INF/lib

查看:190
本文介绍了Tomcat 6无法从WEB-INF/lib加载jar的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试查找雄猫环境中的配置问题.我们的生产服务器正在运行tomcat安装,并从共享的NFS装载读取战争信息.

I'm trying to track down a configuration issue in my tomcat environment. Our production servers are running a tomcat installation and reading the war from a shared NFS mount.

但是,当我尝试使用独立包装盒(及其配置)进行相同的战争时,出现以下错误.

However, when I try the same war with a stand-alone box (with their configuration), I get the error posted below.

有趣的是,如果我将WEB-INF/lib中的所有jar解压缩到WEB-INF/classes中,此错误就消失了.

Whats interesting, is that if I unzip all the jars in WEB-INF/lib into WEB-INF/classes, this error goes away.

因此,似乎是某种原因阻止了应用程序加载WEB-INF/lib路径,但我一生都找不到会导致此问题的tomcat设置,因为它正在检测应用程序和配置,而不是随附的罐子.

So, it seems like something is preventing the app from loading the WEB-INF/lib path, but I can't for the life of me find any tomcat settings that would cause this, because it is detecting the apps and configuration, just not the included jars.

有什么想法吗?

严重:配置类的应用程序侦听器时出错 org.springframework.web.context.ContextLoaderListener java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener 在org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387) 在org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233) 在org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3786) 在org.apache.catalina.core.StandardContext.start(StandardContext.java:4342) 在org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791) 在org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771) 在org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525) 在org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:627) 在org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553) 在org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488) 在org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149) 在org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311) 在org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117) 在org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053) 在org.apache.catalina.core.StandardHost.start(StandardHost.java:719) 在org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) 在org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) 在org.apache.catalina.core.StandardService.start(StandardService.java:516) 在org.apache.catalina.core.StandardServer.start(StandardServer.java:710) 在org.apache.catalina.startup.Catalina.start(Catalina.java:578) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在java.lang.reflect.Method.invoke(Method.java:597) 在org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) 12月20日在org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)上, 2011 4:20:38 PM org.apache.catalina.core.StandardContext listenerStart 严重:配置类的应用程序侦听器时出错 org.springframework.security.web.session.HttpSessionEventPublisher java.lang.ClassNotFoundException: org.springframework.security.web.session.HttpSessionEventPublisher 在org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387) 在org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233) 在org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3786) 在org.apache.catalina.core.StandardContext.start(StandardContext.java:4342) 在org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791) 在org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771) 在org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525) 在org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:627) 在org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553) 在org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488) 在org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149) 在org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311) 在org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117) 在org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053) 在org.apache.catalina.core.StandardHost.start(StandardHost.java:719) 在org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) 在org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) 在org.apache.catalina.core.StandardService.start(StandardService.java:516) 在org.apache.catalina.core.StandardServer.start(StandardServer.java:710) 在org.apache.catalina.startup.Catalina.start(Catalina.java:578) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在java.lang.reflect.Method.invoke(Method.java:597) 在org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) 在org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)

SEVERE: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3786) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4342) at org.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) at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:627) at org.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) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311) at org.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) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.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) Dec 20, 2011 4:20:38 PM org.apache.catalina.core.StandardContext listenerStart SEVERE: Error configuring application listener of class org.springframework.security.web.session.HttpSessionEventPublisher java.lang.ClassNotFoundException: org.springframework.security.web.session.HttpSessionEventPublisher at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3786) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4342) at org.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) at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:627) at org.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) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311) at org.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) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.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)

推荐答案

所以,我仍然没有理由为什么发生这种情况,但是我终于能够使它正常工作.通常,我们使用"unzip"将战争打包到deploy目录中.我将其切换为使用"jar",一切都神奇地起作用了.

So, I still don't have a reason for why this is happening, but I was finally able to get it working. Normally, we use 'unzip' to unpack the war into the deploy directory. I switched it to use 'jar' and everything magically works.

不知道为什么会这样.我尝试了所有其他排列方式(检查我们的部署文件夹,符号链接,权限,所有权等),这是造成差异的 only 事情,即使比较两个解压后的文件夹都表明它们相同,拥有相同的权限,但其中一个有效,而一个无效

I have no idea why this would be. I tried every other permutation (checking our deployment folder, symlinks, permissions, ownerships, etc), and this was the only thing that made a difference, even diffing the two unpacked folders showed they were the same, with the same permissions, but one worked and one didn't

还应注意:生产部署已经使用'unzip'多年了.我真的无法弄清楚这一点,但很高兴我至少可以从事其他工作.

Also of note: the production deploys have been using 'unzip' for years. I really can't figure this one out, but I'm glad I can at least work on something else.

这篇关于Tomcat 6无法从WEB-INF/lib加载jar的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆