On Fri, 18 Oct 2002, Ortega, Carlos wrote:

> Date: Fri, 18 Oct 2002 11:47:19 -0700
> From: "Ortega, Carlos" <[EMAIL PROTECTED]>
> Reply-To: Struts Users Mailing List <[EMAIL PROTECTED]>
> To: Struts Users Mailing List <[EMAIL PROTECTED]>
> Subject: RE: WHY! Won't Form Classes Load
>
> SOLUTION!
>
> iPlanet 6.0 or (SUN ONE) cannot load any ActionForm objects you've
> defined unless they "implements java.io.Serializable", otherwise the
> servlet engine will give you the following silly error:
>
> >javax.servlet.ServletException: Exception creating bean of class
> >[YourActionFormClassHere!]
>

It's always good to know what the underlying cause is.  But I've got a
question -- do you have a <distributable/> element in your web.xml file
(indicating that your webapp is designed to work correctly in a
distributed environment)?  If so, this error is entirely appropriate --
and Tomcat will do the same thing to you -- because the servlet spec
requires you to use only serializable session attributes if you declare
your app to be distributable.

If not, then it sounds like a container-specific restriction that should
be documented in the guides for the server (as well as possibly mentioned
in the Struts docs), because it would impact non-Struts apps as well.

Craig


> I've been working on this for days. I was pulling my hair out. Thank
> God. I hope the good people at Sun will create a document outlining the
> steps to get Struts working on their platform, since they state that
> their server engine works with Struts.
>
> Thanks for all the previous suggestions.
>
> Best Regards,
> Carlos Ortega
>
>
> -----Original Message-----
> From: David Graham [mailto:dgraham1980@;hotmail.com]
> Sent: Wednesday, October 16, 2002 9:10 PM
> To: [EMAIL PROTECTED]
> Subject: Re: WHY! Won't Form Classes Load
>
>
> Your relay action does the same thing as ForwardAction that comes with
> struts, look at the docs for that.  Why are you deploying a beta 1 version?
> Why not beta 2?  Does the struts example app work?  If that doesn't work
> then you've got container configuration issues.  I always make sure the
> example works before trying my own.
>
> I believe ActionForms only get created when there an action associated with
> them is executed OR a jsp with the <html:form> tag is run.  If neither of
> these situations is occuring then the form bean won't exist.
>
> David
>
> >From: "Ortega, Carlos" <[EMAIL PROTECTED]>
> >Reply-To: "Struts Users Mailing List" <[EMAIL PROTECTED]>
> >To: <[EMAIL PROTECTED]>
> >Subject: WHY! Won't Form Classes Load
> >Date: Wed, 16 Oct 2002 20:32:17 -0700
> >
> >
> >It's four hours after I promissed my wife I'd be home and I'm sitting in
> >the office scratching my head, wondering WHY struts won't load ActionForm
> >classes.
> >
> >In a previous thread I mentioned that when I deploy a working beta 1 Struts
> >application on iPlanet 6.0 and attempt to load a JSP that references any
> >ActionForm I get the following silly error:
> >
> >javax.servlet.ServletException: Exception creating bean of class
> >[YourActionFormClassHere!]
> >
> >The form bean is found, but cannot be loaded?!? It get's even more
> >interesting. I discovered that if I bypassed the JSP page and called the
> >".do" instead, in this case "logon.do", the form would actually load. The
> >page had validation errors, as if the user had attempted to login without
> >entering their user name and password.
> >
> >After mentioning this on a previous thread Greg wisely mentioned using the
> >controller to front all of my JSPs. In other words, create an action class
> >that I would call to access the JSPs. So I created a class named
> >RelayAction, designed to accept a "forward" name as an argument.
> >Unfortuneatly, using it resulted in the same error. Here's where the head
> >scratching begins. Why was the form able to load when I called the
> >"Logon.do" and fail when I used RelayAction?
> >
> >Long story short (and I may be too late), I discovered a key difference
> >between the LogonAction and the RelayAction is how they are defined in
> >struts-config.xml. Take a look at the two definitions:
> >
> >LogonAction
> >-------------------------------
> ><action
> >    path="/logon"
> >    name="logonForm"
> >    type="app.forms.LogonAction"
> >    scope="request"
> >    input="/logon.jsp">
> ></action>
> >
> >RelayAction
> >-------------------------------
> ><action
> >    path="/relay"
> >    type="app.forms.RelayAction">
> ></action>
> >
> >I now know that calling "Logon.do" was able to load the form because when
> >LogonAction fails, it forwards control to the "input" page, which is set to
> >"/logon.jsp" above. The LogonAction code that does this is below:
> >
> >if (!errors.empty()) {
> >    saveErrors(request, errors);
> >    return (new ActionForward(mapping.getInput()));
> >}
> >
> >I don't understand why LogonAction class is able to load LogonForm using
> >mapping.getInput() and the RelayAction cannot using mapping.findForward?
> >They both return ActionForward. Can it be because there is a difference
> >between mapping.getInput() and mapping.findForward()!?
> >
> >If you've got pointers, please point-on. I need help here.
> >
> >(going home now...)
> >
> >Carlos Ortega
> >
> >
> >--
> >To unsubscribe, e-mail:
> ><mailto:struts-user-unsubscribe@;jakarta.apache.org>
> >For additional commands, e-mail:
> ><mailto:struts-user-help@;jakarta.apache.org>
>
>
> _________________________________________________________________
> Protect your PC - get McAfee.com VirusScan Online
> http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963
>
>
> --
> To unsubscribe, e-mail:   <mailto:struts-user-unsubscribe@;jakarta.apache.org>
> For additional commands, e-mail: <mailto:struts-user-help@;jakarta.apache.org>
>
>
> --
> To unsubscribe, e-mail:   <mailto:struts-user-unsubscribe@;jakarta.apache.org>
> For additional commands, e-mail: <mailto:struts-user-help@;jakarta.apache.org>
>
>


--
To unsubscribe, e-mail:   <mailto:struts-user-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:struts-user-help@;jakarta.apache.org>

Reply via email to