`
fengshujuan
  • 浏览: 160325 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

at org.apache.struts.action.ActionServlet.parseModuleConfigFile错误的解决方法

    博客分类:
  • java
阅读更多

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

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

 

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的配置是:

 

    <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方法是: 

 

 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 对应的源文件,于是找到出错原因。

分享到:
评论

相关推荐

    commons-beanutils-1.7.0

    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432) at javax.servlet.http.HttpServlet.service...

    struts 2.3.4.1 最新英文版API

    org.apache.struts2.servlet.interceptor org.apache.struts2.util org.apache.struts2.views org.apache.struts2.views.annotations org.apache.struts2.views.freemarker org.apache.struts2.views....

    解决struts2下载异常的jar包 struts2-sunspoter-stream-1.0.jar

    at javax.servlet.http.HttpServletResponseWrapper.sendError(HttpServletResponseWrapper.java:108) at org.apache.struts2.dispatcher.Dispatcher.sendError(Dispatcher.java:770) at org.apache.struts2....

    Struts课堂笔记.rar--struts2的struts.properties配置文件详解

    The org.apache.struts2.config.Configuration implementation class org.apache.struts2.config.Configuration接口名 struts.configuration.files A list of configuration files automatically loaded by ...

    【项目实战案例】java校园订餐系统项目(web端)

    import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import ...

    Struts2入门教程(全新完整版)

    org.apache.struts2.dispatcher.ServletActionRedirectResult 16 plainText 16 显示源文件内容,如文件源码 16 org.apache.struts2.dispatcher.PlainTextResult 16 freemarker 16 处理FreeMarker模板 16 org.apache....

    Struts2中Servlet的配置

    (org.apache.struts2.inteceptor.ServletResponseAware/ServletResquestAware)直接访问 HttpServletResponse/HttpServletRequest,像servlet中使用这两个对象一样。 2、使用struts2提供的ActionContext类直接获取...

    struts2配置详解

    1、Struts1 里使用 ActionServlet 作为控制器; Struts2 使用了一个过滤器作为控制器 2、Struts1 中每个 HTML 表单都对应一个 ActionForm 实例. Struts2 中, HTML 表单将被直接映射到一个 POJO. 3、Struts1 的验证...

    POI导入导出EXCEL文件.(struts 1.x and struts2.x).doc

    import org.apache.struts.action.*; import org.apache.struts.upload.FormFile; import org.apache.commons.beanutils.BeanUtils; public class Action { /**//* * 把数据库中的字段导入到Excel ,并生成Excel...

    JSP Struts配置文件详解

    描述:用于配置ActionServlet 数量:最多一个 属性: @bufferSize:指定上传文件的输入缓冲的大小.默认为4096 @className:指定当前控制器的配置类.默认为org.apache.struts.config.ControllerConfig @...

    Struts2教程

    由于 Struts 的入口点是 ActionServlet ,所以得在 web.xml 中配置一下这 个 Servlet 。 2. 编写 Action 类(一般从 org.apache.struts.action.Action 类继承)。 3. 编写 ActionForm 类(一般从 org.apache.struts....

    Struts2属性文件详解

    该属性的默认值是org.apache.Struts2.config.DefaultConfiguration, 这是Struts 2默认的配置文件管理器.如果需要实现自己的配置管理器,开发者则可以实现一个实现Configuration接口的类,该类可以自己加载Struts 2配置...

    java中文乱码解决方案

    n 种方法教你解决java中文乱码 struts2中文乱码解决方法 1. 在struts2里面,最好将所有字符都设成utf-8。 ; charset=UTF-8"%&gt; &lt;%@ page pageEncoding="UTF-8" %&gt;1.1 在jsp页面设定字符编码。...-- zh-...

    Myeclipse开发struts+hibernate+spring新手入门--环境配置---项目开发示例

    4 import org.apache.struts.action.ActionMapping; 5 6 /** 7 * MyEclipse Struts 8 * Creation date: 11-10-2005 9 * 10 * XDoclet definition: 11 * @struts.form name="LoginForm" 12 */ 13 public ...

    Java 面试宝典

    13、是否可以从一个 static 方法内部发出对非 static 方法的调用? ........................ 13 14、Integer 与 int 的区别 .....................................................................................

    Struts、Spring、Hibernate、SSH框架总结

    Struts是一个MVC框架,通过配置文件很好地实现了模型与视图的...控制器组件包括ActionServlet,是Struts的核心控制器,还包括自定义的Action类,自定义的Action类继承自Struts提供的org.apache.struts.action.Action

    Struts原理、开发及项目实施

    如下图2所示: &lt;br/&gt; 控制:通过图2大家可以看到有一个XML文件Struts-config.xml,与之相关联的是Controller,在Struts中,承担MVC中Controller角色的是一个Servlet,叫ActionServlet。ActionServlet是一...

    jsp+struts权限管理

    import org.apache.struts2.ServletActionContext; import sunyang.functions.domain.Function; import sunyang.functions.service.IFunctionFacade; import sunyang.module.domain.Module; import ...

Global site tag (gtag.js) - Google Analytics