Quelles sont les causes possibles de jeter “un Pas de haricot spécifié Erreur” dans Struts 1.1?
Quelles seraient les causes possibles pour lancer cette erreur d'exécution de Struts 1.1 dans une application web? La stacktrace de mon IDE fenêtre de la console est indiqué ci-dessous:
java.lang.IllegalArgumentException: No bean specified
at org.apache.commons.beanutils.PropertyUtils.getPropertyDescriptor(PropertyUtils.java:837)
at org.apache.commons.beanutils.BeanUtils.setProperty(BeanUtils.java:934)
at org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:808)
at org.apache.struts.util.RequestUtils.populate(RequestUtils.java:1252)
at org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:821)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:254)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:223)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3245)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2003)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1909)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1359)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
Vous devez vous connecter pour publier un commentaire.
C'est probablement jeté par la
org.apache.commons.beanutils.PropertyUtils
de la classe en essayant d'accéder aux propriétés d'un bean qui est nulle. VotreActionForm
peut-être que bean.Vous avez un
ActionForm
défini pour votreAction
? Vérifiez votrestruts-config.xml
fichier et voir si le nom de l'attribut de la<action>
étiquette fait référence à un<form-bean>
.Vous ne fournissent pas suffisamment d'informations ici, donc je ne peux que deviner. Vous devriez poster la stacktrace trop.
EDIT: Il y a une autre chose que vous pourriez vérifier. À partir de la stacktrace il semble que votre formulaire d'Action est OK (je ne pense pas que l'on aurait obtenu si profond dans l'appel, si la forme est nulle), mais il peut être quelque chose sur la forme.
Êtes-vous à l'aide de propriétés imbriquées ou de mettre quelque chose sur un haricot sur la forme, un cas comme :
Si dans votre JSP que vous avez spécifié
form.innerBean.someProperty
lorsque vous soumettez une valeur pour cela, Struts va essayer de faire quelque chose comme unform.getInnerBean().setSomeProperty(...)
. Si la partieform.getInnerBean()
est null, Struts va se plaindre avant d'arriver NullPointerException.Une solution pour ce genre de choses est à changer:
à
Cela pourrait-il être la cause?
Salut j'ai eu le même problème ou similaire. Dans mon cas, j'ai défini la Forme et initialisé ses propriétés. mais quand j'ai envoyer le formulaire, j'ai eu la même erreur, le message dit que l'un des mi champs sont nuls.
C'est parce que dans mon struts-config.xml j'ai utilisé scope="request" en effet de scope="session". De cette manière, chaque fois que je soumettre-je perdre mes données.