java.lang.NullPointerException at org.apache.struts.action.ActionServlet.parseModuleConfigFile(Actio
2012-07-12 11:07
981 查看
at org.apache.struts.action.ActionServlet.parseModuleConfigFile错误的解决方法
博客分类:java
ApacheStrutsJavaWebXML
tomcat 启动后,报出了如下异常
java.lang.NullPointerException at org.apache.struts.action.ActionServlet.parseModuleConfigFile(ActionServlet.java:1003),
Html代码
2010-05-17 16:09:14,031[ ApplicationContext.java:676:ERROR] StandardWrapper.Throwable
java.lang.NullPointerException
at org.apache.struts.action.ActionServlet.parseModuleConfigFile(ActionServlet.java:1003)
at org.apache.struts.action.ActionServlet.initModuleConfig(ActionServlet.java:955)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:470)
at cn.ac.iscas.core.control.LocalActionServlet.init(LocalActionServlet.java:124)
at javax.servlet.GenericServlet.init(GenericServlet.java:212)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1139)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:966)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3956)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4230)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:626)
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:120)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:448)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
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:295)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
2010-05-17 16:09:14,047[ StandardContext.java:3958:ERROR] Servlet /pm threw load() exception
java.lang.NullPointerException
at org.apache.struts.action.ActionServlet.parseModuleConfigFile(ActionServlet.java:1003)
at org.apache.struts.action.ActionServlet.initModuleConfig(ActionServlet.java:955)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:470)
at cn.ac.iscas.core.control.LocalActionServlet.init(LocalActionServlet.java:124)
at javax.servlet.GenericServlet.init(GenericServlet.java:212)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1139)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:966)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3956)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4230)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:626)
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:120)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:448)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
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:295)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
在网上查了半天,说什么的都有,具体到自己的项目,错误的原因是下面的:
在我的项目的 web.xml中,有关config的配置是:
Xml代码
<init-param>
<param-name>config</param-name>
<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>
</init-param>
但是在更新代码的时候,恰巧没有把WEB-INF/struts-config-scmt.xml这个文件给更新下来,所以一直报上述错误。
错误查询步骤,在我的项目中,使用了struts1.1,其中的ActionServlet类中parseModuleConfigFile方法是:
Java代码
private void parseModuleConfigFile(
String prefix,
String paths,
ModuleConfig config,
Digester digester,
String path)
throws UnavailableException {
InputStream input = null;
try {
URL url = getServletContext().getResource(path);
InputSource is = new InputSource(url.toExternalForm());
input = getServletContext().getResourceAsStream(path);
is.setByteStream(input);
digester.parse(is);
getServletContext().setAttribute(Globals.MODULE_KEY + prefix, config);
} catch (MalformedURLException e) {
handleConfigException(paths, e);
} catch (IOException e) {
handleConfigException(paths, e);
} catch (SAXException e) {
handleConfigException(paths, e);
} finally {
if (input != null) {
try {
input.close();
} catch (IOException e) {
throw new UnavailableException(e.getMessage());
}
}
}
}
第1003行就是
URL url = getServletContext().getResource(path);
也就是说在查找配置文件的过程中,有一个path找不多对应的资源文件;
然后在web.xml的config字段中,挨个检查配置文件,发现找不到 /WEB-INF/struts-config-scmt.xml 对应的源文件,于是找到出错原因。
相关文章推荐
- struts2 action空指针异常 org.apache.struts2.ServletActionContext java.lang.NullPointerException
- 异常:java.lang.ClassNotFoundException: org.apache.struts.action.ActionServlet
- org.apache.jasper.JasperException: java.lang.NullPointerException 指定调用action方法
- org.apache.jasper.JasperException: java.lang.NullPointerException: Module 'null' not
- 严重: Parse error in application web.xml file at jndi:/localhost/ipws/WEB-INF/web.xml java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml
- java.lang.NullPointerException at org.apache.jsp.index_jsp._jspInit
- java.lang.ClassNotFoundException: org.apache.struts.action.ActionServlet
- java.lang.NullPointerException at org.apache.taglibs.standard.tlv.JstlBaseTLV.validate(JstlBaseTLV.j
- java.lang.NullPointerException at org.apache.jsp.**_jsp.jspInit(**_jsp.java)tomcat启动异常解决方法
- java.lang.NullPointerException at org.apache.jsp.index_jsp._jspInit(index_jsp.ja
- java.lang.NullPointerException at org.apache.jsp.index_jsp._jspInit(index_jsp.java:22)
- java.lang.NullPointerException at org.apache.jsp.index_jsp._jspInit(index_jsp.ja
- java.lang.NullPointerException at org.apache.jsp.index_jsp._jspInit(index_jsp.java:22)
- 配置完struts,tomcat运行错误java.lang.ClassNotFoundException: org.apache.struts.action.ActionServlet
- java.lang.NullPointerException at org.apache.jsp.index_jsp._jspInit(index_jsp.java:23)
- java.lang.NullPointerException at org.apache.jsp.***_jsp._jspInit(***_jsp.java:22)
- Err:java.lang.ClassNotFoundException: org.apache.struts.action.ActionServlet
- java.lang.NullPointerException at org.apache.jsp.**_jsp.jspInit(index_jsp.java)异常 解决方案
- Messages: java.lang.NullPointerExceptionFile: org/apache/jsp/test_jsp.javaLine number: 23
- java.lang.NullPointerException at org.apache.jsp.index_jsp._jspInit(index_jsp.java)