java.lang.NullPointerException at org.apache.struts.action.ActionServlet.parseModuleConfigFile(Actio

tomcat 启动后,报出了如下异常

java.lang.NullPointerException at org.apache.struts.action.ActionServlet.parseModuleConfigFile(ActionServlet.java:1003),

 

Html代码   收藏代码
  1. 2010-05-17 16:09:14,031[ ApplicationContext.java:676:ERROR] StandardWrapper.Throwable  
  2. java.lang.NullPointerException  
  3.     at org.apache.struts.action.ActionServlet.parseModuleConfigFile(ActionServlet.java:1003)  
  4.     at org.apache.struts.action.ActionServlet.initModuleConfig(ActionServlet.java:955)  
  5.     at org.apache.struts.action.ActionServlet.init(ActionServlet.java:470)  
  6.     at cn.ac.iscas.core.control.LocalActionServlet.init(LocalActionServlet.java:124)  
  7.     at javax.servlet.GenericServlet.init(GenericServlet.java:212)  
  8.     at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1139)  
  9.     at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:966)  
  10.     at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3956)  
  11.     at org.apache.catalina.core.StandardContext.start(StandardContext.java:4230)  
  12.     at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)  
  13.     at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740)  
  14.     at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)  
  15.     at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:626)  
  16.     at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553)  
  17.     at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488)  
  18.     at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)  
  19.     at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)  
  20.     at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)  
  21.     at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022)  
  22.     at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)  
  23.     at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)  
  24.     at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)  
  25.     at org.apache.catalina.core.StandardService.start(StandardService.java:448)  
  26.     at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)  
  27.     at org.apache.catalina.startup.Catalina.start(Catalina.java:552)  
  28.     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
  29.     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)  
  30.     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)  
  31.     at java.lang.reflect.Method.invoke(Method.java:597)  
  32.     at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)  
  33.     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)  
  34. 2010-05-17 16:09:14,047[    StandardContext.java:3958:ERROR] Servlet /pm threw load() exception  
  35. java.lang.NullPointerException  
  36.     at org.apache.struts.action.ActionServlet.parseModuleConfigFile(ActionServlet.java:1003)  
  37.     at org.apache.struts.action.ActionServlet.initModuleConfig(ActionServlet.java:955)  
  38.     at org.apache.struts.action.ActionServlet.init(ActionServlet.java:470)  
  39.     at cn.ac.iscas.core.control.LocalActionServlet.init(LocalActionServlet.java:124)  
  40.     at javax.servlet.GenericServlet.init(GenericServlet.java:212)  
  41.     at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1139)  
  42.     at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:966)  
  43.     at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3956)  
  44.     at org.apache.catalina.core.StandardContext.start(StandardContext.java:4230)  
  45.     at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)  
  46.     at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740)  
  47.     at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)  
  48.     at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:626)  
  49.     at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553)  
  50.     at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488)  
  51.     at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)  
  52.     at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)  
  53.     at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)  
  54.     at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022)  
  55.     at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)  
  56.     at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)  
  57.     at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)  
  58.     at org.apache.catalina.core.StandardService.start(StandardService.java:448)  
  59.     at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)  
  60.     at org.apache.catalina.startup.Catalina.start(Catalina.java:552)  
  61.     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
  62.     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)  
  63.     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)  
  64.     at java.lang.reflect.Method.invoke(Method.java:597)  
  65.     at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)  
  66.     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)  

 

在网上查了半天,说什么的都有,具体到自己的项目,错误的原因是下面的:

 

在我的项目的 web.xml中,有关config的配置是:

 

Xml代码   收藏代码
  1. <init-param>   
  2.   <param-name>config</param-name>    
  3.   <param-value>/WEB-INF/struts-config-hl.xml,/WEB-INF/struts-config.xml,/WEB-INF/struts-config-pm.xml,/WEB-INF/struts-config-spa.xml,/WEB-INF/struts-config-mt.xml,/WEB-INF/struts-config-org.xml,/WEB-INF/struts-config-scm.xml,/WEB-INF/struts-config-rm.xml,/WEB-INF/struts-config-dataview.xml,/WEB-INF/struts-config-cus.xml,/WEB-INF/struts-config-scmt.xml</param-value>   
  4. </init-param>   

 

但是在更新代码的时候,恰巧没有把WEB-INF/struts-config-scmt.xml这个文件给更新下来,所以一直报上述错误。

 

 

错误查询步骤,在我的项目中,使用了struts1.1,其中的ActionServlet类中parseModuleConfigFile方法是: 

 

Java代码   收藏代码
  1. private void parseModuleConfigFile(  
  2.        String prefix,  
  3.        String paths,  
  4.        ModuleConfig config,  
  5.        Digester digester,  
  6.        String path)  
  7.        throws UnavailableException {  
  8.   
  9.        InputStream input = null;  
  10.        try {  
  11.            URL url = getServletContext().getResource(path);  
  12.            InputSource is = new InputSource(url.toExternalForm());  
  13.            input = getServletContext().getResourceAsStream(path);  
  14.            is.setByteStream(input);  
  15.            digester.parse(is);  
  16.            getServletContext().setAttribute(Globals.MODULE_KEY + prefix, config);  
  17.              
  18.        } catch (MalformedURLException e) {  
  19.            handleConfigException(paths, e);  
  20.        } catch (IOException e) {  
  21.            handleConfigException(paths, e);  
  22.        } catch (SAXException e) {  
  23.            handleConfigException(paths, e);  
  24.        } finally {  
  25.            if (input != null) {  
  26.                try {  
  27.                    input.close();  
  28.                } catch (IOException e) {  
  29.                    throw new UnavailableException(e.getMessage());  
  30.                }  
  31.            }  
  32.        }  
  33.    }  

 

 第1003行就是

 URL url = getServletContext().getResource(path);

也就是说在查找配置文件的过程中,有一个path找不多对应的资源文件;

 

然后在web.xml的config字段中,挨个检查配置文件,发现找不到 /WEB-INF/struts-config-scmt.xml 对应的源文件,于是找到出错原因。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值