Cita:
Iniciado por gppgoyo Hola a todos. Tengo un problema con spring en una aplicación web que estoy desarrollando y no se cómo solucionarlo. Quizá alguien me pueda indicar qué estoy haciendo mal.
Bien, en la aplicación tengo un fichero applicationContext con los beans definidos para el contexto de Spring, entre ellos un action:
<bean id="indexAction" class="es.web.action.IndexAction" singleton="false">
...
</bean>
Y en el fichero struts-config he definido el plug-in para cargar los beans del contexto de Spring:
<plug-in className="org.springframework.web.struts.ContextL oaderPlugIn">
<set-property property="contextConfigLocation" value="applicationContext.xml"/>
</plug-in>
Este sería el primer action que debe ejecutarse, ya que el welcome file es un index.jsp que redirige a un forward welcome:
<logic:redirect forward="welcome"/>
Y este forward está definido en struts-config de esta forma:
<forward name="welcome" path="/action/index.do?method=load" redirect="true"/>
El action en struts-config está declarado asi:
<action path="/action/index"
type="indexAction"
parameter="method"
scope="request">
<forward name="success" path="web.home" />
</action>
Pero al ejecutar la aplicación, obtengo en siguiente error:
20-jul-2010 9:22:10 org.apache.struts.action.RequestProcessor processActionCreate
GRAVE: No action instance for path /action/index could be created
java.lang.ClassNotFoundException: indexAction
at org.apache.catalina.loader.WebappClassLoader.loadC lass(WebappClassLoader.java:1436)
(...)
Estoy empezando con spring, por lo que no tengo mucha idea de qué puede estar fallando. Suponía que incluyendo el plugin ContextLoaderPlugIn ya estarían disponibles las clases para que el servlet las utilizase desde el contexto de Spring, pero parece que no es así. ¿Alguien podría echarme una mano? Muchas gracias.
Hola, este error es porque no ha encontrado tu clase que se llama indexAction.
En el parametro type debes de especificar el nombre de tu clase que servira como Servlet (Action), te recuerdo que con Struts debes de meter tus clases dentro de un paquete y no dejarlas al "aire".
Saludos!