Hello there! I'm having a strange problem with my struts app (1.2.9),
it's been a long time since the last time I've used struts (being in
the Swing world for a while now).
The application launches an error on startup:
[java] SEVERE: Parsing error processing resource path
/WEB-INF/struts-config.xml
[java] java.lang.NoSuchMethodException: No such accessible
method: addForwardConfig() on object: com.acme.AcmeAction
[java] at
org.apache.commons.digester.Digester.createSAXException(Digester.java:2792)
[java] at
org.apache.commons.digester.Digester.createSAXException(Digester.java:2818)
[java] at
org.apache.commons.digester.Digester.endElement(Digester.java:1070)
[java] at
oracle.xml.parser.v2.NonValidatingParser.parseElement(NonValidatingParser.java:1257)
[java] at
oracle.xml.parser.v2.ValidatingParser.parseRootElement(ValidatingParser.java:143)
[java] at
oracle.xml.parser.v2.NonValidatingParser.parseDocument(NonValidatingParser.java:281)
[java] at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:196)
[java] at org.apache.commons.digester.Digester.parse(Digester.java:1572)
[java] at
org.apache.struts.action.ActionServlet.parseModuleConfigFile(ActionServlet.java:738)
[java] at
org.apache.struts.action.ActionServlet.initModuleConfig(ActionServlet.java:687)
[java] at
org.apache.struts.action.ActionServlet.init(ActionServlet.java:333)
[java] at javax.servlet.GenericServlet.init(GenericServlet.java:258)
[java] at
com.evermind.server.http.HttpApplication.loadServlet(HttpApplication.java:2354)
[java] at
com.evermind.server.http.HttpApplication.findServlet(HttpApplication.java:4795)
[java] at
com.evermind.server.http.HttpApplication.initPreloadServlets(HttpApplication.java:4889)
[java] at
com.evermind.server.http.HttpApplication.initDynamic(HttpApplication.java:1015)
[java] at
com.evermind.server.http.HttpApplication.<init>(HttpApplication.java:549)
[java] at
com.evermind.server.Application.getHttpApplication(Application.java:890)
[java] at
com.evermind.server.http.HttpServer.getHttpApplication(HttpServer.java:707)
[java] at
com.evermind.server.http.HttpSite.initApplications(HttpSite.java:625)
[java] at com.evermind.server.http.HttpSite.setConfig(HttpSite.java:278)
[java] at
oracle.oc4j.admin.internal.WebApplicationBinder.bindWebApp(WebApplicationBinder.java:173)
[java] at
com.evermind.server.administration.DefaultApplicationServerAdministrator.bindWebApp(DefaultApplicationServerAdministrator.java:415)
[java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[java] at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[java] at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[java] at java.lang.reflect.Method.invoke(Method.java:589)
[java] at
com.evermind.server.rmi.RMICallHandler.run(RMICallHandler.java:124)
[java] at com.evermind.server.rmi.RMICallHandler.run(RMICallHandler.java:48)
[java] at
com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192)
[java] at java.lang.Thread.run(Thread.java:620)
Well, I've checked the Action class and it really does not have an
addForwardConfig method.
Here's my struts-config.xml:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
<struts-config>
<!-- ================================================ Form Bean Definitions -->
<form-beans>
<form-bean name="votarForm"
type="com.acme.AcmeForm"></form-bean>
</form-beans>
<!-- ========================================= Global Exception Definitions -->
<global-exceptions>
</global-exceptions>
<!-- =========================================== Global Forward Definitions -->
<global-forwards>
<forward name="principal" path="def.principal"></forward>
</global-forwards>
<!-- =========================================== Action Mapping Definitions -->
<action-mappings>
<action path="/votar" scope="request" validate="true"
className="com.acme.AcmeAction"
name="votarForm">
<forward name="success"
path="def.regionalVotacao"></forward>
<forward name="failure" path="def.votacao"></forward>
</action>
</action-mappings>
<!-- ============================================= Controller Configuration -->
<controller
processorClass="org.apache.struts.tiles.TilesRequestProcessor"/>
<!-- ======================================== Message Resources Definitions -->
<message-resources parameter="MessageResources" />
<plug-in className="org.apache.struts.tiles.TilesPlugin" >
<set-property property="definitions-config"
value="/WEB-INF/tiles-defs.xml" />
<set-property property="moduleAware" value="true" />
</plug-in>
<!-- =================================================== Validator plugin -->
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property
property="pathnames"
value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
</plug-in>
</struts-config>
All the files (validation, validator and tiles) are placed under the
WEB-INF in the war file.
My AcmeAction extends ActionSupport from Spring's helper classes.
First I thought was this, but then I've changed it to a regular
action, and the problem persists. As it throws an Severe message, I'm
guessing this is the cause that I can't access my application (when I
try to access the index.jsp) I get an 500 Error complaining about not
having a principal ActionForward defined on my global-forwards.
BTW here's index.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ include file="include/taglibs.jsp" %>
<logic:forward name="principal"/>
Any ideas please?
Regards
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]