标签:style blog io ar color os sp java on
加班ing,组长给了个现成的jee项目,导入eclipse后。启动tomcat报错,报错日志如下(由于报错信息太多,此处只截取一个样例。其他报错信息均为找不到java/util/List.class等基本java类):
1 java.io.FileNotFoundException: /home/monkey/worksrv/apache-tomcat-6.0.41/webapps/PriceSystem/WEB-INF/classes/com/opensymphony/xwork2/ActionSupport.class (No such file or directory) 2 at java.io.FileInputStream.open(Native Method) 3 at java.io.FileInputStream.<init>(FileInputStream.java:140) 4 at com.opensymphony.xwork2.util.classloader.FileResourceStore.read(FileResourceStore.java:44) 5 at com.opensymphony.xwork2.util.classloader.ResourceStoreClassLoader.fastFindClass(ResourceStoreClassLoader.java:42) 6 at com.opensymphony.xwork2.util.classloader.ResourceStoreClassLoader.loadClass(ResourceStoreClassLoader.java:57) 7 at java.lang.ClassLoader.loadClass(ClassLoader.java:268) 8 at java.lang.ClassLoader.defineClass1(Native Method) 9 at java.lang.ClassLoader.defineClass(ClassLoader.java:643) 10 at java.lang.ClassLoader.defineClass(ClassLoader.java:489) 11 at com.opensymphony.xwork2.util.classloader.ResourceStoreClassLoader.fastFindClass(ResourceStoreClassLoader.java:45) 12 at com.opensymphony.xwork2.util.classloader.ResourceStoreClassLoader.loadClass(ResourceStoreClassLoader.java:57) 13 at java.lang.ClassLoader.loadClass(ClassLoader.java:268) 14 at com.opensymphony.xwork2.util.classloader.ReloadingClassLoader.loadClass(ReloadingClassLoader.java:144) 15 at com.opensymphony.xwork2.util.finder.ClassLoaderInterfaceDelegate.loadClass(ClassLoaderInterfaceDelegate.java:34) 16 at com.opensymphony.xwork2.util.finder.ClassFinder$ClassInfo.get(ClassFinder.java:562) 17 at com.opensymphony.xwork2.util.finder.ClassFinder.findClasses(ClassFinder.java:343) 18 at org.apache.struts2.convention.PackageBasedActionConfigBuilder.findActions(PackageBasedActionConfigBuilder.java:393) 19 at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:347) 20 at org.apache.struts2.convention.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:53) 21 at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:268) 22 at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67) 23 at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:445) 24 at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:489) 25 at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74) 26 at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:57) 27 at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:298) 28 at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:119) 29 at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4076) 30 at org.apache.catalina.core.StandardContext.start(StandardContext.java:4730) 31 at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) 32 at org.apache.catalina.core.StandardHost.start(StandardHost.java:822) 33 at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) 34 at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) 35 at org.apache.catalina.core.StandardService.start(StandardService.java:525) 36 at org.apache.catalina.core.StandardServer.start(StandardServer.java:754) 37 at org.apache.catalina.startup.Catalina.start(Catalina.java:595) 38 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 39 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 40 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 41 at java.lang.reflect.Method.invoke(Method.java:622) 42 at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) 43 at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
即连最基本的jar包导入的类都找不到。
到网上搜了N多信息,最终在一个不起眼的iteye中找到了问答(也只是问答,具体原理没说)。解决方案如下:
在struts.xml配置文件中,找到如下配置项:
<!-- convention类重新加载 --> <constant name="struts.convention.classes.reload" value="true" />
将该配置项的属性value设为false,即可解决上述的报错。
-----------------------------------------暂时分割线-----------------------------------------
在另一篇blog中摸索了这么一条信息:
导致这个问题可能的原因:
1. windows操作系统下,tomcat安装目录中带空格(笔者的系统是ubuntu,将tomcat移至无空格目录中,同样报错)
2. struts版本问题。国外BBS上讨论的这个问题,低版本的bug,更新至高版本就没有问题。
由于时间问题,笔者没有做详细验证,在此处做一下记录以警示。
注:上述信息都是从网上查看了N多blog获得的信息,笔者尊重作者原创,若作者强调原创,请告知笔者。谢谢!
struts.convention.classes.reload配置为true,tomcat启动报错
标签:style blog io ar color os sp java on
原文地址:http://www.cnblogs.com/dudemonkey/p/4162722.html