You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Brad Plies <br...@bulliondirect.com> on 2003/04/28 23:06:19 UTC
[Nasty] DynaActionForm problem: NoSuchMethodError??
Having a problem starting to use DynaActionForms. I am trying
to introduce them into my webapp for their obvious benefits. Not
only can I not get them to work at all, my logs are recording
errors that no one seems to get on any forum/faq/thread anywhere.
Here is what I have:
Struts 1.1-rc1
Validator 1.0.2
BeanUtils 1.6.1
Tomcat 4.1.24
In struts-config.xml:
<form-bean name="customerInfoForm"
type="org.apache.struts.validator.DynaValidatorForm"
<!-- dynamic="true" --> <!-- Error no matter what this is -->
>
<form-property name="firstName" type="java.lang.String" />
<form-property name="middleInitial" type="java.lang.String" />
<form-property name="lastName" type="java.lang.String" />
<form-property name="billingAddressLine1" type="java.lang.String" />
<form-property name="billingAddressLine2" type="java.lang.String" />
<form-property name="billingAddressLine3" type="java.lang.String" />
<form-property name="billingCity" type="java.lang.String" />
<form-property name="billingState" type="java.lang.String" />
<form-property name="billingPostalCode" type="java.lang.String" />
<form-property name="mailingAddressLine1" type="java.lang.String" />
<form-property name="mailingAddressLine2" type="java.lang.String" />
<form-property name="mailingAddressLine3" type="java.lang.String" />
<form-property name="mailingCity" type="java.lang.String" />
<form-property name="mailingState" type="java.lang.String" />
<form-property name="mailingPostalCode" type="java.lang.String" />
<form-property name="emailAddress" type="java.lang.String" />
<form-property name="dayPhone1" type="java.lang.String" />
<form-property name="dayPhone2" type="java.lang.String" />
<form-property name="dayPhone3" type="java.lang.String" />
<form-property name="evePhone1" type="java.lang.String" />
<form-property name="evePhone2" type="java.lang.String" />
<form-property name="evePhone3" type="java.lang.String" />
<form-property name="faxPhone1" type="java.lang.String" />
<form-property name="faxPhone2" type="java.lang.String" />
<form-property name="faxPhone3" type="java.lang.String" />
</form-bean>
<action
path="/sales/customerInfo"
type="myapp.actions.CustomerInfoAction"
name="customerInfoForm"
attribute="customerInfoForm"
input="/viewCart.do"
scope="session"
validate="true"
parameter="sales.cart"> <!-- Not responsible for error -->
<forward name="success" path="/sales/checkout.do" />
<forward name="failure" path=".error" />
</action>
Basic JSP (enterCustomerInformation.jsp):
<html:form action="/sales/customerInfo>
<%-- Error will happen even if this is blank --%>
</html:form>
Now here is when it gets interesting, the page will display an exception:
ServletException in:/sales/enterCustomerInformation.jsp] Exception creating
bean of class org.apache.struts.validator.DynaValidatorForm: {1}'
${catalina.home}/logs/stderr.log shows:
org.apache.struts.util.RequestUtils createActionForm
SEVERE: Error creating form bean of class
org.apache.struts.validator.DynaValidatorForm
java.lang.NoSuchMethodError:
org.apache.struts.action.DynaActionForm.setDynaActionFormClass(Lorg/apache/struts/action/DynaActionFormClass;)V
at
org.apache.struts.action.DynaActionFormClass.newInstance(DynaActionFormClass.java:240)
at
org.apache.struts.util.RequestUtils.createActionForm(RequestUtils.java:733)
at org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:594)
at
org.apache.jsp.enterCustomerInformation_jsp._jspx_meth_html_form_0(enterCustomerInformation_jsp.java:98)
at
org.apache.jsp.enterCustomerInformation_jsp._jspService(enterCustomerInformation_jsp.java:74)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
The webapp log shows:
----- Root Cause -----
javax.servlet.ServletException: Exception creating bean of class
org.apache.struts.validator.DynaValidatorForm: {1}
at
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:530)
at
org.apache.jsp.enterCustomerInformation_jsp._jspService(enterCustomerInformation_jsp.java:83)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
Notice that the logged messages are funny looking in the logs:
* the "{1}'" on the rendered JSP & webapp log
* the "V" in the "DynaActionFormClass;)V" in the stderr.log
* the "Lorg" in the ".setDynaActionFormClass(Lorg/" in the stderr.log
This error is repeatable no matter what *Dyna* type I declare the
<form-bean> as (
such as DynaActionForm, DynaValidatorActionForm, or even any base classes I
establish)
Judging by the stacktrace, this error is deeper into the API than I am
manipulating
myself. And I do not feel I have done anything to draw a "NoSuchMethodError."
All my configs conform to the DTDs.
I cannot find any pre-existing threads about this issue, and I
am frustrated that everyone has DynaForms working for them and I don't :(.
Has anyone encountered this? Can anyone reproduce this on their end?
Is this bug-submission worthy?
Thanks in advance to anyone who dares read all this and offers
their advice.
Re: [Nasty] DynaActionForm problem: NoSuchMethodError??
Posted by Ian Hunter <ih...@hunterweb.net>.
How strange. I just got that same error today and was searching for
references to it ... the {1} and all. I swear.
My problem went away after making some minor adjustments to struts-config
and the JSPs having to do with a property of my DynaValidatorForm that
contains an array of other funky object types. In all sincerity, I said to
a coworker, right before testing, "it's going to bother me a little if this
works now because we won't know what fixed it..." So the short version is,
I never found out just why it said that.
Some odd things I see in your posted stuff include usage of the "attribute"
attribute as well as referring to actions for input and forward names --
those are the only places it's OK to have a JSP named...
I would simplify the problem to where you (temporarily) have only one field
in your DynaValidatorForm, get that working, then start adding back the
fields until it chokes again.
----- Original Message -----
From: "Brad Plies" <br...@bulliondirect.com>
To: <st...@jakarta.apache.org>
Sent: Monday, April 28, 2003 5:06 PM
Subject: [Nasty] DynaActionForm problem: NoSuchMethodError??
> Having a problem starting to use DynaActionForms. I am trying
> to introduce them into my webapp for their obvious benefits. Not
> only can I not get them to work at all, my logs are recording
> errors that no one seems to get on any forum/faq/thread anywhere.
>
> Here is what I have:
>
> Struts 1.1-rc1
> Validator 1.0.2
> BeanUtils 1.6.1
> Tomcat 4.1.24
>
> In struts-config.xml:
> <form-bean name="customerInfoForm"
> type="org.apache.struts.validator.DynaValidatorForm"
> <!-- dynamic="true" --> <!-- Error no matter what this is -->
> >
> <form-property name="firstName" type="java.lang.String" />
> <form-property name="middleInitial" type="java.lang.String" />
> <form-property name="lastName" type="java.lang.String" />
> <form-property name="billingAddressLine1" type="java.lang.String" />
> <form-property name="billingAddressLine2" type="java.lang.String" />
> <form-property name="billingAddressLine3" type="java.lang.String" />
> <form-property name="billingCity" type="java.lang.String" />
> <form-property name="billingState" type="java.lang.String" />
> <form-property name="billingPostalCode" type="java.lang.String" />
> <form-property name="mailingAddressLine1" type="java.lang.String" />
> <form-property name="mailingAddressLine2" type="java.lang.String" />
> <form-property name="mailingAddressLine3" type="java.lang.String" />
> <form-property name="mailingCity" type="java.lang.String" />
> <form-property name="mailingState" type="java.lang.String" />
> <form-property name="mailingPostalCode" type="java.lang.String" />
> <form-property name="emailAddress" type="java.lang.String" />
> <form-property name="dayPhone1" type="java.lang.String" />
> <form-property name="dayPhone2" type="java.lang.String" />
> <form-property name="dayPhone3" type="java.lang.String" />
> <form-property name="evePhone1" type="java.lang.String" />
> <form-property name="evePhone2" type="java.lang.String" />
> <form-property name="evePhone3" type="java.lang.String" />
> <form-property name="faxPhone1" type="java.lang.String" />
> <form-property name="faxPhone2" type="java.lang.String" />
> <form-property name="faxPhone3" type="java.lang.String" />
> </form-bean>
>
> <action
> path="/sales/customerInfo"
> type="myapp.actions.CustomerInfoAction"
> name="customerInfoForm"
> attribute="customerInfoForm"
> input="/viewCart.do"
> scope="session"
> validate="true"
> parameter="sales.cart"> <!-- Not responsible for error -->
> <forward name="success" path="/sales/checkout.do" />
> <forward name="failure" path=".error" />
> </action>
>
> Basic JSP (enterCustomerInformation.jsp):
> <html:form action="/sales/customerInfo>
> <%-- Error will happen even if this is blank --%>
> </html:form>
>
> Now here is when it gets interesting, the page will display an exception:
> ServletException in:/sales/enterCustomerInformation.jsp] Exception
creating
> bean of class org.apache.struts.validator.DynaValidatorForm: {1}'
>
> ${catalina.home}/logs/stderr.log shows:
> org.apache.struts.util.RequestUtils createActionForm
> SEVERE: Error creating form bean of class
> org.apache.struts.validator.DynaValidatorForm
> java.lang.NoSuchMethodError:
>
org.apache.struts.action.DynaActionForm.setDynaActionFormClass(Lorg/apache/s
truts/action/DynaActionFormClass;)V
> at
>
org.apache.struts.action.DynaActionFormClass.newInstance(DynaActionFormClass
.java:240)
> at
>
org.apache.struts.util.RequestUtils.createActionForm(RequestUtils.java:733)
> at
org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:594)
> at
>
org.apache.jsp.enterCustomerInformation_jsp._jspx_meth_html_form_0(enterCust
omerInformation_jsp.java:98)
> at
>
org.apache.jsp.enterCustomerInformation_jsp._jspService(enterCustomerInforma
tion_jsp.java:74)
> at
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
>
> The webapp log shows:
> ----- Root Cause -----
> javax.servlet.ServletException: Exception creating bean of class
> org.apache.struts.validator.DynaValidatorForm: {1}
> at
>
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImp
l.java:530)
> at
>
org.apache.jsp.enterCustomerInformation_jsp._jspService(enterCustomerInforma
tion_jsp.java:83)
> at
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
>
>
> Notice that the logged messages are funny looking in the logs:
> * the "{1}'" on the rendered JSP & webapp log
> * the "V" in the "DynaActionFormClass;)V" in the stderr.log
> * the "Lorg" in the ".setDynaActionFormClass(Lorg/" in the stderr.log
>
> This error is repeatable no matter what *Dyna* type I declare the
> <form-bean> as (
> such as DynaActionForm, DynaValidatorActionForm, or even any base classes
I
> establish)
> Judging by the stacktrace, this error is deeper into the API than I am
> manipulating
> myself. And I do not feel I have done anything to draw a
"NoSuchMethodError."
>
> All my configs conform to the DTDs.
>
> I cannot find any pre-existing threads about this issue, and I
> am frustrated that everyone has DynaForms working for them and I don't :(.
> Has anyone encountered this? Can anyone reproduce this on their end?
> Is this bug-submission worthy?
>
> Thanks in advance to anyone who dares read all this and offers
> their advice.
---------------------------------------------------------------------
To unsubscribe, e-mail: struts-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: struts-user-help@jakarta.apache.org