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

Añadir servlet a web.xml provoca error en tomcat

Estas en el tema de Añadir servlet a web.xml provoca error en tomcat en el foro de Java en Foros del Web. Hola, Como puedo añadir otro servlet al fichero web.xml de un proyecto en JSF? Si intento definir otro servlet, tomcat no arranca, me indica que ...
  #1 (permalink)  
Antiguo 26/09/2014, 04:11
 
Fecha de Ingreso: junio-2006
Mensajes: 46
Antigüedad: 17 años, 10 meses
Puntos: 0
Añadir servlet a web.xml provoca error en tomcat

Hola,

Como puedo añadir otro servlet al fichero web.xml de un proyecto en JSF? Si intento definir otro servlet, tomcat no arranca, me indica que no puedo arrancar el servidor.

El web xml actual definido es:

Código:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns="http://java.sun.com/xml/ns/javaee" 
   xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
   http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
   id="WebApp_ID" version="2.5">
   <welcome-file-list>
      <welcome-file>faces/home.xhtml</welcome-file>
   </welcome-file-list>
   <!-- 
      FacesServlet is main servlet responsible to handle all request. 
      It acts as central controller.
      This servlet initializes the JSF components before the JSP is displayed.
   -->
   <servlet>
      <servlet-name>Faces Servlet</servlet-name>
      <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
      <load-on-startup>1</load-on-startup>
   </servlet>
  <!--  <servlet>
		<servlet-name>FormulaClientServlet</servlet-name>
		<servlet-class>es.xxxx.xxxxx.cliente.servlets.FormulaClientServlet
		</servlet-class>
		
</servlet> -->
   <servlet-mapping>
      <servlet-name>Faces Servlet</servlet-name>
      <url-pattern>/faces/*</url-pattern>
   </servlet-mapping>
   <servlet-mapping>
      <servlet-name>Faces Servlet</servlet-name>
      <url-pattern>*.jsf</url-pattern>
   </servlet-mapping>
   <servlet-mapping>
      <servlet-name>Faces Servlet</servlet-name>
      <url-pattern>*.faces</url-pattern>
   </servlet-mapping>
   <servlet-mapping>
      <servlet-name>Faces Servlet</servlet-name>
      <url-pattern>*.xhtml</url-pattern>
   </servlet-mapping>

</web-app>
Gracias!

Última edición por danietepa; 26/09/2014 a las 05:03
  #2 (permalink)  
Antiguo 26/09/2014, 05:42
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: Añadir servlet a web.xml provoca error en tomcat

Buenas,

Lo que estas haciendo es correcto y deberia funcionar.

Sin embargo es imposible decirte que puede estar pasando si no eres mas especifico y a al menos posteas el error que te da el tomcat al arrancar. Quizas no encuentra dicha clase en el classpath?


Un saludo
  #3 (permalink)  
Antiguo 26/09/2014, 06:15
 
Fecha de Ingreso: junio-2006
Mensajes: 46
Antigüedad: 17 años, 10 meses
Puntos: 0
Respuesta: Añadir servlet a web.xml provoca error en tomcat

Cita:
Iniciado por Profesor_Falken Ver Mensaje
Buenas,

Lo que estas haciendo es correcto y deberia funcionar.

Sin embargo es imposible decirte que puede estar pasando si no eres mas especifico y a al menos posteas el error que te da el tomcat al arrancar. Quizas no encuentra dicha clase en el classpath?


Un saludo
El error al arrancar se produce si meto el .jar en la carpeta lib del WebContent. Sí la saco fuera, arranca pero da error y me indica de que no encuentra la clase:

Código:
Grave: El Servlet.service() para el servlet [Faces Servlet] en el contexto con ruta [/PrimerJSF] lanzó la excepción [es/xxxx/xxxx/cliente/MotorFormularioClienteFactory] con causa raíz
java.lang.ClassNotFoundException: es.xxx.motorformularios.cliente.MotorFormularioClienteFactory
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
Si meto la clase en el lib no arranca y se produce el siguiente error:

Código:
sep 26, 2014 2:17:42 PM org.apache.catalina.core.StandardContext startInternal
Grave: Error listenerStart
sep 26, 2014 2:17:42 PM org.apache.catalina.core.StandardContext startInternal
Grave: Falló en arranque del Contexto [/JSF2.0] debido a errores previos
sep 26, 2014 2:17:42 PM org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
Grave: La aplicación web [/JSF2.0] creó un ThreadLocal con clave del tipo [com.sun.faces.util.Util$1] (valor [com.sun.faces.util.Util$1@8736dd3]) y un valor del tipo [java.util.HashMap] (valor [{com.sun.faces.patternCache={ = }}]) pero no pudo quitarlo cuando la aplicación web se paró. Los hilos se van a renovar con el tiempo para intentar evitar in posible fallo de memoria.
sep 26, 2014 2:17:42 PM org.apache.catalina.core.ContainerBase startInternal
Grave: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
	at java.util.concurrent.FutureTask.report(Unknown Source)
	at java.util.concurrent.FutureTask.get(Unknown Source)
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123)
	at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:300)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:731)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:689)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:321)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131)
	at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:799)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	... 6 more

sep 26, 2014 2:17:42 PM org.apache.catalina.startup.Catalina start
Grave: The required Server component failed to start so Tomcat is unable to start.
org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8006]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:689)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:321)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Catalina]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
	at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:731)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	... 7 more
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
	at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	... 9 more
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131)
	at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:300)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	... 11 more
  #4 (permalink)  
Antiguo 26/09/2014, 07:43
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: Añadir servlet a web.xml provoca error en tomcat

Buenas,

Es muy muy raro...

Tu clase es.xxx.motorformularios.cliente.MotorFormularioCli enteFactory es un Servlet????(implementa Servlet)
  #5 (permalink)  
Antiguo 26/09/2014, 12:17
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: Añadir servlet a web.xml provoca error en tomcat

Me da que va a ser un problema entre alguna API y la librería de implementación.

Empieza por revisar qué versión de las API estás utilizando en las configuraciones y qué librerías la implementan.

Además deberías aportar más información al hacer preguntas de este tipo, como si te sucede cuando lo ejecutas desde el IDE o al desplegar, IDE , versión de java, versión del Tomcat, frameworks/APIs usadas,etc.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.

Etiquetas: formulario, jsp, servlet, tomcat
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 04:11.