PDA

View Full Version : [STRUTS] problema


orpheus
25-03-2005, 14:14
Sto sviluppando una web application utilizzando il framework Struts
e mi trovo a dover risolvere questo problema.

Ho un ActionForm di cui non conosco a priori il numero di campi se non durante il run time. Per risolvere questo ho utilizzato una HashMap.

Durante l'azione di load dei dati dal database tutto funziona correttamente e il form viene popolato correttamente, solo che al momento di effettuare la sottomisisone dei dati e inoltrare il BeanForm alla Action che deve svolgere le operazioni, Tomcat mi restituisce questa eccezione


exception

javax.servlet.ServletException: BeanUtils.populate
org.apache.struts.util.RequestUtils.populate(RequestUtils.java:1254)
org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:821)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:254)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)

root cause

java.lang.IllegalArgumentException: No bean specified
org.apache.commons.beanutils.PropertyUtils.getPropertyDescriptor(PropertyUtils.java:837)
org.apache.commons.beanutils.BeanUtils.setProperty(BeanUtils.java:934)
org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:808)
org.apache.struts.util.RequestUtils.populate(RequestUtils.java:1252)
org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:821)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:254)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)



Non riesco a capire a cosa sia dovuto l'errore se non ipotizzare che la HashMap sia nulla dopo il load dei dati (ma è solo una mia supposizione)

spero di esser stato abbastanza chiaro nella descrizione del problema

grazie anticipatamente per qualunque aiuto

tglman
25-03-2005, 14:30
controlla se hai collegato correttamente la beanForm, e se l'hai dicchiarata bene...

Ciao.

orpheus
26-03-2005, 12:59
Il problema sono gli oggetti interni alla Map.

In pratica effettuando la load dei dati dal db la Map la popolo io quindi istanzio le classi giuste....ma quando tocca alla jsp popolare i dati del form per sottomettere la richiesta alla action giusta non istanzia i oggetti da mettere nella Map e da lì l'eccezione di Bean nullo.


Cavolo nn riesco a capire come risolvere questo problema

suggerimenti?

tglman
26-03-2005, 23:21
Da qunto mi ricordo (ho lavorato con struts circa 6 mesi fa), esite un file dove sone configurate tutte le action che dorebbe essere config-struts..... dove all'interno dello stesso dovrebberro essere presenti anche le definizioni di tutti i form che userai... forse l'errore è proprio all'interno di questo file..

Ciao

orpheus
02-04-2005, 11:27
Finalmente ho risolto il problema, tutto stava nella natura del ActionForm che, poichè conteneva al suo interno una struttura dati complessa, richiedeva uno scope di sessione e non di request


Ti ringrazio per suggerimenti e aiuto