This week's book giveaways are in the Java EE and JavaScript forums.
We're giving away four copies each of The Java EE 7 Tutorial Volume 1 or Volume 2(winners choice) and jQuery UI in Action and have the authors on-line!
See this thread and this one for details.
The moose likes Struts and the fly likes error starting struts app in tomcat Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of The Java EE 7 Tutorial Volume 1 or Volume 2 this week in the Java EE forum
or jQuery UI in Action in the JavaScript forum!
JavaRanch » Java Forums » Frameworks » Struts
Bookmark "error starting struts app in tomcat " Watch "error starting struts app in tomcat " New topic
Author

error starting struts app in tomcat

Jay Richards
Ranch Hand

Joined: Jan 16, 2003
Posts: 58
i have a web-app that works fine in resin but does not work in tomcat. i always get this error:
Mar 24, 2003 3:32:00 PM org.apache.commons.digester.Digester startElement
SEVERE: Begin event threw exception
java.lang.NoSuchMethodException: Bean has no property named loginRequired
at org.apache.commons.digester.SetPropertyRule.begin(SetPropertyRule.jav
a:193)
at org.apache.commons.digester.Rule.begin(Rule.java:200)
at org.apache.commons.digester.Digester.startElement(Digester.java:1268)

at org.apache.xerces.parsers.AbstractSAXParser.startElement(AbstractSAXP
arser.java:459)
at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Abst
ractXMLDocumentParser.java:221)
at org.apache.xerces.impl.XMLNamespaceBinder.handleStartElement(XMLNames
paceBinder.java:874)
at org.apache.xerces.impl.XMLNamespaceBinder.emptyElement(XMLNamespaceBi
nder.java:591)
at org.apache.xerces.impl.dtd.XMLDTDValidator.emptyElement(XMLDTDValidat
or.java:748)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElemen
t(XMLDocumentFragmentScannerImpl.java:747)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContent
Dispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1477)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XM
LDocumentFragmentScannerImpl.java:329)
at org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.jav
a:525)
at org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.jav
a:581)
at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:152)
at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.j
ava:1175)
at org.apache.commons.digester.Digester.parse(Digester.java:1543)
at org.apache.struts.action.ActionServlet.initModuleConfig(ActionServlet
.java:944)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:468)
at javax.servlet.GenericServlet.init(GenericServlet.java:256)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.
java:934)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:82
1)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContex
t.java:3420)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3
608)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)

at org.apache.catalina.core.StandardHost.start(StandardHost.java:738)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)

at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:347
)
at org.apache.catalina.core.StandardService.start(StandardService.java:4
97)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:218
9)
at org.apache.catalina.startup.Catalina.start(Catalina.java:512)
at org.apache.catalina.startup.Catalina.execute(Catalina.java:400)
at org.apache.catalina.startup.Catalina.process(Catalina.java:180)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203)

===========================
my web.xml looks like this:
<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">

<web-app>

<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>1</param-value>
</init-param>
<init-param>
<param-name>config</param-name>
<param-value>
/WEB-INF/struts-config.xml
</param-value>
</init-param>
<init-param>
<param-name>application</param-name>
<param-value>ApplicationResources</param-value>
</init-param>
<init-param>
<param-name>mapping</param-name>
<param-value>com.fltic.crm.UserActionMapping</param-value>
</init-param>

<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>

<taglib>
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>

<taglib>
<taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
</taglib>

<taglib>
<taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>

</web-app>
================================
and part of my struts-config.xml is
/data-sources>

<form-beans>
<form-bean name="loginForm"
type="com.fltic.crm.form.LoginForm"/>
<form-bean name="userAccountForm"
type="com.fltic.crm.form.UserAccountForm"/>
<form-bean name="addTaskForm"
type="com.fltic.crm.form.AddTaskForm"/>
<form-bean name="taskActivityForm"
type="com.fltic.crm.form.TaskActivityForm"/>
<form-bean name="policyNonFLTICForm"
type="com.fltic.crm.form.PolicyNonFLTICForm"/>
<form-bean name="contactInfoForm"
type="com.fltic.crm.form.ContactInfoForm"/>
<form-bean name="personalInfoForm"
type="com.fltic.crm.form.PersonalInfoForm"/>
<form-bean name="busEmpInfoForm"
type="com.fltic.crm.form.BusEmpInfoForm"/>
<form-bean name="familyPropInfoForm"
type="com.fltic.crm.form.FamilyPropInfoForm"/>
</form-beans>

<global-forwards>
<forward name="login" path="/login.jsp"/>
</global-forwards>

<action-mappings>
<action path="/Login"
type="com.fltic.crm.action.LoginAction"
validate="true"
input="/login.jsp"
name="loginForm"
scope="session" >
<forward name="TM" path="/TmMainTaskList.do"/>
<forward name="Manager" path="/ManagerMain.do"/>
<forward name="Admin" path="/AdminMain.do"/>
</action>

<action path="/Logoff"
type="com.fltic.crm.action.LogoffAction">
<forward name="success" path="/login.jsp"/>
</action>

<!-- TM Action Mappings were transfers to struts-config-tm.xml -->

<!-- TM Specific Mappings [Start]-->
<action path="/TmMainTaskList"
type="com.fltic.crm.action.tm.TaskListAction"
scope="request" >
<set-property property="loginRequired" value="true"/>
<forward name="success" path="/tm-main.jsp"/>
</action>
================================
the error is in loginRequired property which is already defined in my web.xml in the file UserActionMapping
here's the java file:
package com.fltic.crm;

import org.apache.struts.action.ActionMapping;

public class UserActionMapping extends ActionMapping {

protected boolean loginRequired = false;

public UserActionMapping() {

super();
}

public void setLoginRequired(boolean loginRequired) {

this.loginRequired = loginRequired;
}

public boolean isLoginRequired() {

return loginRequired;
}
}
============================
what do i need to let my struts app works because it do works in resin.

please help me.

thanks a lot everyone.
K�vin Sotter
Greenhorn

Joined: Sep 08, 2004
Posts: 1
Hello
I have the same error and I can't find information to resolve it. Does somebody have the answer ?
Sheldon Fernandes
Ranch Hand

Joined: Aug 18, 2004
Posts: 157
Hi,

I have not had the need to extend ActionMapping till now, so finding this solution took a bit of work and understanding. Here's what I found.

Struts 1.0 allows you to specify an alternate ActionMapping class to be used for holding action mappings. This is done with the "mapping" initialization parameter to the Struts controller servlet (as you have done).
This is however deprecated in Struts 1.1 (I found this in the javadoc comment for the class ActionServlet). Struts 1.1 allows you to define different ActionMapping classes for different modules/actions. This can be configured using the "className" attribute of each <action> element, or globally for a module by using the "type" attribute of the <action-mappings> element.

This would mean changing your struts-config.xml to do one of the following:

<action-mappings type="com.fltic.crm.UserActionMapping">

OR

<action
path="/TmMainTaskList"
type="com.fltic.crm.action.tm.TaskListAction"
scope="request"
className="com.fltic.crm.UserActionMapping">
<set-property property="loginRequired" value="true"/>
<forward name="success" path="/tm-main.jsp"/>
</action>

I hope this solution fixes your problem. Please do let us know.
Sheldon
leroi luca
Greenhorn

Joined: Aug 21, 2005
Posts: 1
Thank you Sheldon Fernandes !!!

You're fantastic.
It's good: my program does a good work now !

bye
Aakash Dodiya
Greenhorn

Joined: Aug 21, 2005
Posts: 7
Check your class path.
if u not set it then please reset as below.

System classpath is irrelevant.
You run a struts application through a web/application server.
As far as the server is concerned, the classpath is
1 - the directory /WEB-INF/classes
2 - jar files in /WEB-INF/lib/(struts.jar)
3 - server library files. eg with Tomcat jar files in the directories [TOMCAT]/shared/lib and [TOMCAT]/common/lib
[ August 21, 2005: Message edited by: Aakash Dodiya ]
 
 
subject: error starting struts app in tomcat