部署Struts2.x时报Exception starting filter struts2 java.lang.NullPointerException

最近开始看Struts2,之前在项目中用过Struts1.x

1和2的差别还是有点

但这些都是其次的

最开始的配置一个简单的Hello World就把我丢翻了

到最后改了之后才觉得这个问题真变态,虽然这个问题在网上的解决方案已经说了无数次了

如果你用Tomcat部署的时候遇到这样的问题,

org.apache.catalina.core.StandardContext filterStart       
严重: Exception starting filter struts2       
java.lang.NullPointerException       
     at com.opensymphony.xwork2.util.FileManager$FileRevision.needsReloading(FileManager.java:209)       
     at com.opensymphony.xwork2.util.FileManager.fileNeedsReloading(FileManager.java:60)       
     at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.needsReload(XmlConfigurationProvider.java:325)       
     at org.apache.struts2.config.StrutsXmlConfigurationProvider.needsReload(StrutsXmlConfigurationProvider.java:168)       
     at com.opensymphony.xwork2.config.ConfigurationManager.conditionalReload(ConfigurationManager.java:220)       
     at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:61)       
     at org.apache.struts2.dispatcher.Dispatcher.getContainer(Dispatcher.java:774)       
     at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:191)       
     at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)       
     at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397)       
     at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108)       
     at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3709)       
     at org.apache.catalina.core.StandardContext.start(StandardContext.java:4363)       
     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.deployDirectory(HostConfig.java:926)       
     at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:889)       
     at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)       
     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)       

 那么恭喜你也许我说的方案能解决你的问题了

干掉你的Tomcat安装路径中的所有空格包括版本号前的空格(默认安装那有空格,我浪费了很多时间就是在那个空格上面)

至于原因还有待研究,该休息了,明天继续学习

你可能感兴趣的:(java,apache,tomcat,sun)