`
zhuxinzx
  • 浏览: 293828 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

调试Struts时抛出的奇怪异常。

    博客分类:
  • JAVA
阅读更多
今天在调试一个Struts程序时抛出这个奇怪的错误。。。找了很久没能找到问题的根源,排查了Struts-config.xml文件中的配置,也检查了action。没有发现那里有错误。很郁闷,,也在Action类中也没有addForwardConfig()方法。结果对比了别的Struts-config.xml文件发现原来是我在这个文件中将Action的配置本来应该是type="com.myAction" 写成了 className="com.myAction"。将这里改好问题就解决了。  将这个小问题写出来与遇到了相同问题的朋友们分享,也让遇到相同问题的兄弟少走弯路。



2011-4-25 17:14:46 org.apache.commons.digester.Digester endElement
严重: End event threw exception
java.lang.NoSuchMethodException: No such accessible method: addForwardConfig() on object: com.jfproj.web.action.WebAction
at org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:214)
at org.apache.commons.digester.SetNextRule.end(SetNextRule.java:208)
at org.apache.commons.digester.Rule.end(Rule.java:228)
at org.apache.commons.digester.Digester.endElement(Digester.java:1067)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:601)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLNSDTDValidator.endNamespaceScope(XMLNSDTDValidator.java:263)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleEndElement(XMLDTDValidator.java:2028)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.endElement(XMLDTDValidator.java:901)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1774)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2930)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
at weblogic.xml.jaxp.WebLogicXMLReader.parse(WebLogicXMLReader.java:133)
at weblogic.xml.jaxp.RegistryXMLReader.parse(RegistryXMLReader.java:173)
at org.apache.commons.digester.Digester.parse(Digester.java:1572)
at org.apache.struts.action.ActionServlet.parseModuleConfigFile(ActionServlet.java:738)
at org.apache.struts.action.ActionServlet.initModuleConfig(ActionServlet.java:687)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:333)
at javax.servlet.GenericServlet.init(GenericServlet.java:241)
at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:283)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.StubSecurityHelper.createServlet(StubSecurityHelper.java:64)
at weblogic.servlet.internal.StubLifecycleHelper.createOneInstance(StubLifecycleHelper.java:58)
at weblogic.servlet.internal.StubLifecycleHelper.<init>(StubLifecycleHelper.java:48)
at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:521)
at weblogic.servlet.internal.WebAppServletContext.preloadServlet(WebAppServletContext.java:1913)
at weblogic.servlet.internal.WebAppServletContext.loadServletsOnStartup(WebAppServletContext.java:1887)
at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1805)
at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:3041)
at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1374)
at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:452)
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60)
at weblogic.application.internal.flow.ScopedModuleDriver.start(ScopedModuleDriver.java:200)
at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:117)
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60)
at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:27)
at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:629)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:206)
at weblogic.application.internal.SingleModuleDeployment.activate(SingleModuleDeployment.java:40)
at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:161)
at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:79)
at weblogic.deploy.internal.targetserver.BasicDeployment.activate(BasicDeployment.java:184)
at weblogic.deploy.internal.targetserver.BasicDeployment.activateFromServerLifecycle(BasicDeployment.java:361)
at weblogic.management.deploy.internal.DeploymentAdapter$1.doActivate(DeploymentAdapter.java:51)
at weblogic.management.deploy.internal.DeploymentAdapter.activate(DeploymentAdapter.java:196)
at weblogic.management.deploy.internal.AppTransition$2.transitionApp(AppTransition.java:30)
at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:233)
at weblogic.management.deploy.internal.ConfiguredDeployments.activate(ConfiguredDeployments.java:169)
at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:123)
at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:173)
at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:89)
at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
2011-4-25 17:14:46 org.apache.struts.action.ActionServlet handleConfigException
严重: Parsing error processing resource path /WEB-INF/struts-config.xml
java.lang.NoSuchMethodException: No such accessible method: addForwardConfig() on object: com.jfproj.web.action.WebAction
at org.apache.commons.digester.Digester.createSAXException(Digester.java:2792)
at org.apache.commons.digester.Digester.createSAXException(Digester.java:2818)
at org.apache.commons.digester.Digester.endElement(Digester.java:1070)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:601)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLNSDTDValidator.endNamespaceScope(XMLNSDTDValidator.java:263)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleEndElement(XMLDTDValidator.java:2028)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.endElement(XMLDTDValidator.java:901)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1774)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2930)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
at weblogic.xml.jaxp.WebLogicXMLReader.parse(WebLogicXMLReader.java:133)
at weblogic.xml.jaxp.RegistryXMLReader.parse(RegistryXMLReader.java:173)
at org.apache.commons.digester.Digester.parse(Digester.java:1572)
at org.apache.struts.action.ActionServlet.parseModuleConfigFile(ActionServlet.java:738)
at org.apache.struts.action.ActionServlet.initModuleConfig(ActionServlet.java:687)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:333)
at javax.servlet.GenericServlet.init(GenericServlet.java:241)
at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:283)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.StubSecurityHelper.createServlet(StubSecurityHelper.java:64)
at weblogic.servlet.internal.StubLifecycleHelper.createOneInstance(StubLifecycleHelper.java:58)
at weblogic.servlet.internal.StubLifecycleHelper.<init>(StubLifecycleHelper.java:48)
at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:521)
at weblogic.servlet.internal.WebAppServletContext.preloadServlet(WebAppServletContext.java:1913)
at weblogic.servlet.internal.WebAppServletContext.loadServletsOnStartup(WebAppServletContext.java:1887)
at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1805)
at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:3041)
at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1374)
at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:452)
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60)
at weblogic.application.internal.flow.ScopedModuleDriver.start(ScopedModuleDriver.java:200)
at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:117)
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60)
at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:27)
at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:629)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:206)
at weblogic.application.internal.SingleModuleDeployment.activate(SingleModuleDeployment.java:40)
at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:161)
at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:79)
at weblogic.deploy.internal.targetserver.BasicDeployment.activate(BasicDeployment.java:184)
at weblogic.deploy.internal.targetserver.BasicDeployment.activateFromServerLifecycle(BasicDeployment.java:361)
at weblogic.management.deploy.internal.DeploymentAdapter$1.doActivate(DeploymentAdapter.java:51)
at weblogic.management.deploy.internal.DeploymentAdapter.activate(DeploymentAdapter.java:196)
at weblogic.management.deploy.internal.AppTransition$2.transitionApp(AppTransition.java:30)
at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:233)
at weblogic.management.deploy.internal.ConfiguredDeployments.activate(ConfiguredDeployments.java:169)
at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:123)
at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:173)
at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:89)
at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
<2011-4-25 下午05时14分46秒 CST> <Error> <HTTP> <BEA-101216> <Servlet: "action" failed to preload on startup in Web application: "jfProj".
javax.servlet.UnavailableException: Parsing error processing resource path /WEB-INF/struts-config.xml
at org.apache.struts.action.ActionServlet.handleConfigException(ActionServlet.java:769)
at org.apache.struts.action.ActionServlet.parseModuleConfigFile(ActionServlet.java:745)
at org.apache.struts.action.ActionServlet.initModuleConfig(ActionServlet.java:687)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:333)
at javax.servlet.GenericServlet.init(GenericServlet.java:241)
Truncated. see log file for complete stacktrace
>
分享到:
评论

相关推荐

    Struts2调试方法

    8. **异常处理**:Struts2提供了全局异常处理机制,当Action执行抛出异常时,可以通过全局异常处理器进行统一处理。确保异常处理器配置正确,并能捕获到预期的异常。 9. **使用开发工具**:利用浏览器的开发者工具...

    struts手动异常处理

    例如,可以定义一个`InvalidInputException`,当用户输入无效时抛出,以便在不同地方捕获并处理。 5. **使用`ActionError`和`FieldError`**:Struts提供了一种将异常信息存储在`ActionContext`中的机制,通过`...

    Struts2 异常处理的四种获取属性方法

    当Action的execute方法抛出异常时,`ActionSupport`会自动将错误信息设置到ActionContext中,这样可以在JSP页面上通过`fieldErrors`或`actionErrors`标签显示错误信息。例如: ```java public class MyAction ...

    Struts2之异常处理案例struts003

    当Action执行过程中抛出异常时,ExceptionMappingInterceptor会捕获它,并根据预先配置的异常映射规则来决定如何响应。 3. **struts.xml配置** 在`struts.xml`配置文件中,可以通过`&lt;exception-mapping&gt;`元素定义...

    Struts1异常处理

    5. **结合Log4j等日志框架**:在处理异常时,通常会配合Log4j等日志框架记录异常信息,以便于调试和问题追踪。 6. **错误页面设计**:为了提供良好的用户体验,错误页面应当清晰地向用户展示错误信息,同时避免暴露...

    Struts2异常处理机制

    当一个Action执行过程中抛出未捕获的异常时,`ExceptionMappingInterceptor`会介入并根据配置决定如何响应这个异常。 1. **异常映射拦截器(Exception Mapping Interceptor)** 这个拦截器是Struts2默认包含的,它会...

    struts2处理项目全局异常

    项目中出现的异常通常要用一个友好的异常页面来显示,通过对struts2.xml的配置能拦截全局异常,只要出现异常就会转向异常页面。

    struts1.x 异常处理机制

    在这个标签内,你可以声明一个或多个异常类型,并为每个异常指定一个错误页面,当Action执行过程中抛出这些异常时,Struts会自动跳转到对应的错误页面。 例如: ```xml ``` 这段配置表示,如果在Action执行...

    struts2中异常处理(demo)

    `ExceptionMappingInterceptor`是内置的拦截器之一,用于处理Action执行期间抛出的异常。开发者也可以编写自己的拦截器,添加到拦截器栈中,以实现更复杂的异常处理逻辑。 5. **错误和消息展示**:Struts2允许将...

    struts2之声明式异常捕捉

    这个拦截器会捕获并处理在执行Action时抛出的异常。在Struts2的配置文件(通常是`struts.xml`或`struts.properties`)中,我们可以定义`&lt;exception-mapping&gt;`元素来指定异常与结果视图之间的映射关系。 以下是一个...

    EclipseEE struts Tomcat入门程序调试.rar

    在本文中,我们将深入探讨如何使用Eclipse EE集成开发环境(IDE)来开发基于Struts1的Web JSP程序,并在Tomcat服务器上进行调试。首先,我们需要理解Eclipse EE、Struts1和Tomcat各自的角色。 **Eclipse EE** 是...

    Struts中 下载时点击取消异常解决包

    Struts2是一个流行的Java web框架,它为开发者提供...总的来说,解决Struts2文件下载取消时的异常,关键在于正确管理和控制文件流,以及及时响应用户的行为变化。通过以上策略,我们可以使应用更加健壮,提高用户体验。

    Struts2 下载取消报异常最终解决办法

    在使用Struts2进行文件下载功能时,可能会遇到各种异常情况,特别是当用户尝试取消下载时。本篇将深入探讨Struts2下载取消报异常的解决方法,以及相关的知识点。 1. **Struts2 文件下载原理** - Struts2提供了方便...

    struts2的异常处理机制

    当一个Action执行过程中抛出异常时,Struts2会根据配置的异常映射(`exception-mapping`)来决定如何处理这个异常。异常处理分为全局(全局异常映射`global-exception-mappings`)和局部(Action级别的异常映射)两...

    struts2 全局异常提示定义属性文件使用

    当控制器或业务逻辑抛出异常时,Struts2框架会捕获这些异常并根据配置决定如何响应。默认情况下,Struts2会显示一个简单的错误页面,但这通常不够具体和友好。为了解决这个问题,我们可以通过创建一个全局异常映射...

    Struts的常见错误和异常.doc

    当尝试访问一个未在`struts-config.xml`中定义的Action时,会出现此异常。这可能是因为你在JSP文件中指定了一个不存在的Action,如`&lt;html:form action="Login.do"&gt;`,但`struts-config.xml`中没有对应的配置。解决...

    基于Struts的异常处理

    `AppException`提供了几个构造函数,方便在抛出异常时传递错误代码和参数。 接下来,我们讨论自定义异常处理器`AppExceptionHandler`,它是`org.apache.struts.action.ExceptionHandler`的子类。这个类的核心方法是...

    JAVA范例 四)异常处理---编译时异常、运行时异常

    本文将深入探讨"JAVA范例 四)异常处理---编译时异常、运行时异常"这个主题,结合标签"源码"和"工具",我们可以理解这与实际编程实践和可能使用的开发工具如Struts2框架相关。 首先,我们来看编译时异常。编译时...

Global site tag (gtag.js) - Google Analytics