Foros del Web » Programación para mayores de 30 ;) » Java »

Error tomcat: "No esta disponible el ServletAction" y jars no encontrados

Estas en el tema de Error tomcat: "No esta disponible el ServletAction" y jars no encontrados en el foro de Java en Foros del Web. Hola, Estoy desplegando una aplicacion web con el servidor Apache Tomcat usando el Ant desde el MyEclipse. Cuando despliego la aplicacion con el Ant, este ...
  #1 (permalink)  
Antiguo 31/03/2009, 12:23
 
Fecha de Ingreso: mayo-2007
Mensajes: 222
Antigüedad: 17 años
Puntos: 0
Error tomcat: "No esta disponible el ServletAction" y jars no encontrados

Hola,
Estoy desplegando una aplicacion web con el servidor Apache Tomcat usando el Ant desde el MyEclipse.

Cuando despliego la aplicacion con el Ant, este me dice que la aplicacion ha sido correctamente desplegada.

Si voy al directorio webapps efectivamente puedo comprobar como la aplicacion ha sido desplegada y con su correspondiente WAR.

Pero cuando trato de ejecutar el WAR de la aplicacion, Tomcat me da el siguiente error:

Message: No esta disponible el ServletAction.
Descripcion: El recurso requerido (No esta disponible el ServletAction) no esta disponible.

Si voy al log stdout the Apache Tomcat, puedo ver los siguientes warnings.

WARN: No appends could be found for logger (org.apache.commons.beanutils.Convertutils)
WARN: Please initialize the log4j system properly

Pero, si voy al Java Build path de la aplicacion puedo comprobar como he añadido los jars commons.beanutils.jar ylog4j.jar .

Estoy atascado. No entiendo porque no me funciona.
Agradeceria algun tipo de ayuda para solucionar este problema,
Saludos.
  #2 (permalink)  
Antiguo 01/04/2009, 03:57
Avatar de elAntonie  
Fecha de Ingreso: febrero-2007
Mensajes: 894
Antigüedad: 17 años, 3 meses
Puntos: 10
Respuesta: Error tomcat: "No esta disponible el ServletAction" y jars no encontrados

Wenas

Tomcat, no lo se pero me figuro que si, es posible que este usando commons-loggins o una version distinta de log4j.

Si es asi, puede que se este pegando con tu version de log4j.

En tomcat no se como se hace, en OC4J es tan sencillo como quitar el commons logging a mano. Para ello, lo mejor es incluir en el orion-application la siguiente linea, dentro del nodo <imported-shared-libraries>

Código:
<remove-inherited name="apache.commons.logging"></remove-inherited>
Con ello, eliminamos el commons-logging.

En tomcat, habra algo parecido, prueba a ver.

Saludos.

Última edición por elAntonie; 01/04/2009 a las 04:25
  #3 (permalink)  
Antiguo 01/04/2009, 04:29
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: Error tomcat: "No esta disponible el ServletAction" y jars no encontrados

El mensaje:
Cita:
WARN: No appends could be found for logger (org.apache.commons.beanutils.Convertutils)
WARN: Please initialize the log4j system properly
es sólo un aviso de que no tienes bien configurado el Log4J, por que no encuentre el log4j.properties, por ejemplo, pero no es el error que impide que la aplicación se despliegue.

Eso sólo un "warning", así que tendrás que buscar cual es el error de verdad que hace que la aplicación no se pueda arrancar. El problema es que quizá los logs por donde te saldría el error son los que están mal configurados .

De todas formas, lo más seguro es que en algun otro log te ponga el error de verdad.
S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #4 (permalink)  
Antiguo 01/04/2009, 09:18
 
Fecha de Ingreso: mayo-2007
Mensajes: 222
Antigüedad: 17 años
Puntos: 0
Respuesta: Error tomcat: "No esta disponible el ServletAction" y jars no encontrados

Cita:
Iniciado por GreenEyed Ver Mensaje
El mensaje:

es sólo un aviso de que no tienes bien configurado el Log4J, por que no encuentre el log4j.properties, por ejemplo, pero no es el error que impide que la aplicación se despliegue.

Eso sólo un "warning", así que tendrás que buscar cual es el error de verdad que hace que la aplicación no se pueda arrancar. El problema es que quizá los logs por donde te saldría el error son los que están mal configurados .

De todas formas, lo más seguro es que en algun otro log te ponga el error de verdad.
S!

Hola otra vez,

He pulido algunas cosas que tenia mal en el struts.config.xml (referencias a clases que no existian), aun asi cuando despliego la aplicacion mediante el Ant y la ejecuto, no me funciona, me aparece el mismo error de antes.

Message: No esta disponible el ServletAction.
Descripcion: El recurso requerido (No esta disponible el ServletAction) no esta disponible.


Yendo al log stdout del Tomcat me saca las siguientes trazas, pongo en negro las trazas que considero más significativas para detectar el error:

Código:
2009-04-01 16:53:27 StandardContext[/manager]Manager: deploy: Deploying web application at '/DSGCWeb'
2009-04-01 16:53:27 StandardContext[/manager]Manager: Uploading WAR file to C:\Tomcat 5.0.28\webapps\DSGCWeb.war
2009-04-01 16:53:27 StandardContext[/manager]Manager: Extracting XML file to C:\Tomcat 5.0.28\conf\Catalina\localhost\DSGCWeb.xml
2009-04-01 16:53:27 StandardContext[/manager]Manager: install: Installing web application at '/DSGCWeb' from 'jar:file:/C:/Tomcat 5.0.28/webapps/DSGCWeb.war!/'
2009-04-01 16:53:30 StandardContext[/DSGCWeb]Marcando el servlet action como no disponible
2009-04-01 16:53:30 StandardContext[/DSGCWeb]El Servlet /DSGCWeb lanzó excepción de load()
javax.servlet.UnavailableException: Parsing error processing resource path 
	at org.apache.struts.action.ActionServlet.handleConfigException(ActionServlet.java:1035)
	at org.apache.struts.action.ActionServlet.parseModuleConfigFile(ActionServlet.java:1010)
	at org.apache.struts.action.ActionServlet.initModuleConfig(ActionServlet.java:955)
	at org.apache.struts.action.ActionServlet.init(ActionServlet.java:470)
	at javax.servlet.GenericServlet.init(GenericServlet.java:211)
	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1029)
	at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:862)
	at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4013)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4357)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:823)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:595)
	at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:277)
	at org.apache.catalina.core.StandardHost.install(StandardHost.java:832)
	at org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:922)
	at org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:652)
	at org.apache.catalina.manager.ManagerServlet.doPut(ManagerServlet.java:400)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:712)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
	at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
	at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
	at java.lang.Thread.run(Unknown Source)
Un saludo y gracias por echarme una mano.
  #5 (permalink)  
Antiguo 01/04/2009, 09:35
Avatar de elAntonie  
Fecha de Ingreso: febrero-2007
Mensajes: 894
Antigüedad: 17 años, 3 meses
Puntos: 10
Respuesta: Error tomcat: "No esta disponible el ServletAction" y jars no encontrados

Pon tu web.xml
  #6 (permalink)  
Antiguo 01/04/2009, 09:56
 
Fecha de Ingreso: mayo-2007
Mensajes: 222
Antigüedad: 17 años
Puntos: 0
Respuesta: Error tomcat: "No esta disponible el ServletAction" y jars no encontrados

El web.xml

Código:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app id="WebApp">
	<display-name>DSGCWeb</display-name>
	<listener>
		<listener-class>ds.gc.liseners.ContextoLisener</listener-class>
	</listener>
	<servlet>
		<servlet-name>action</servlet-name>
		<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
		<init-param>
			<param-name>config</param-name>
			<param-value>WEB-INF/struts-config.xml</param-value>
		</init-param>
		<init-param>
			<param-name>debug</param-name>
			<param-value>0</param-value>
		</init-param>
		<init-param>
			<param-name>detail</param-name>
			<param-value>0</param-value>
		</init-param>
		<init-param>
			<param-name>validate</param-name>
			<param-value>true</param-value>
		</init-param>
		<init-param>
			<param-name>application</param-name>
			<param-value>resources.ApplicationResources</param-value>
		</init-param>
		<load-on-startup>2</load-on-startup>
	</servlet>
	<servlet>
		<servlet-name>login</servlet-name>
		<display-name>login</display-name>
		<jsp-file>/login.jsp</jsp-file>
	</servlet>
	<servlet-mapping>
		<servlet-name>action</servlet-name>
		<url-pattern>*.do</url-pattern>
	</servlet-mapping>
	
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
		<welcome-file>index.htm</welcome-file>
		<welcome-file>index.jsp</welcome-file>
		<welcome-file>default.html</welcome-file>
		<welcome-file>default.htm</welcome-file>
		<welcome-file>default.jsp</welcome-file>
	</welcome-file-list>
	<taglib>
		<taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
		<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
	</taglib>
	<taglib>
		<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
		<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
	</taglib>
	<taglib>
		<taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
		<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
	</taglib>
	<taglib>
		<taglib-uri>/WEB-INF/struts-nested.tld</taglib-uri>
		<taglib-location>/WEB-INF/struts-nested.tld</taglib-location>
	</taglib>
	<taglib>
		<taglib-uri>/WEB-INF/struts-template.tld</taglib-uri>
		<taglib-location>/WEB-INF/struts-template.tld</taglib-location>
	</taglib>
	<taglib>
		<taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri>
		<taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
	</taglib>


</web-app>
  #7 (permalink)  
Antiguo 01/04/2009, 10:09
Avatar de elAntonie  
Fecha de Ingreso: febrero-2007
Mensajes: 894
Antigüedad: 17 años, 3 meses
Puntos: 10
Respuesta: Error tomcat: "No esta disponible el ServletAction" y jars no encontrados

Es a org.apache.struts.action.ActionServlet a quien no esta encontrando.

Cuando le estas indicando <load-on-startup>2</load-on-startup> le estas diciendo que ejecute ese servlet al arrancar la aplicacion.

Haz una cosa genera un servlet 'tonto' (ServletTonto) y cambias tu web.xml
Código:
public class ServletTonto extends HttpServlet{
	public void init() throws ServletException
	{
		super.init();
                 }
}
Código:
  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>ServletTonto</servlet-class>
        <load-on-startup>1</load-on-startup>
  </servlet>
Y vuelves a desplegar.

Cuenta que pasa.
  #8 (permalink)  
Antiguo 01/04/2009, 12:30
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: Error tomcat: "No esta disponible el ServletAction" y jars no encontrados

El problema viene de aquí:
[quote]2009-04-01 16:53:30 StandardContext[/DSGCWeb]El Servlet /DSGCWeb lanzó excepción de load()
javax.servlet.UnavailableException: Parsing error processing resource path
at org.apache.struts.action.ActionServlet.handleConfi gException(ActionServlet.java:1035)
...
[quote]
Y así por encima, parece querer decir que hay algo en la configuración de Struts que no le gusta. Como no uso Struts, no te puedo decir por qué es.

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #9 (permalink)  
Antiguo 02/04/2009, 01:50
Avatar de elAntonie  
Fecha de Ingreso: febrero-2007
Mensajes: 894
Antigüedad: 17 años, 3 meses
Puntos: 10
Respuesta: Error tomcat: "No esta disponible el ServletAction" y jars no encontrados

Lo que tiene pinta es que hay dos versiones de struts que se estan dando de bofetadas. Probablemente tedras un struts.jar en tu aplicacion de la version 1.3, por ejemplo, y tomcat tendra un struts.jar de la 1.2.

El problema es de struts, como te dice GreenEyed.

De todos modos dime si te funciona con lo que te he dicho, y pon tu struts-config.xml
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:43.