tomcat
propósito
- notas sobre el uso de tomcat
configuración
puerto
- tomcat se levanta en el puerto 8080
localhost:8080
despliegue
- el servidor despliega los
war
que tenga el directoriowebapps
- por ejemplo en
C:\servidores\ApacheTomcat7.0.27\webapps
servidores
versión 7.0.27
- es la que uso en la DGA
- en algunas instalaciones cambio el nombre al directorio para no dejar espacios en blanco
- esta en
C:\servidores\ApacheTomcat7.0.27
- el el pc HP que es el actual esta tal y como lo uso en el curro
C:\Servidores\Apache Tomcat 7.0.27
- el el pc HP que es el actual esta tal y como lo uso en el curro
XAMP
- tiene también un servidor Tomcat que ya casi no uso ni instalo para usar algo lo más parecido a lo que tengo en el trabajo
C:\XAMPP\TOMCAT>catalina_start.bat
localhost:8080/manager/html
- javier
- javier
- lo puedo lanzar desde
c:\xampp\tomcat>catalina_start.bat
manager
archivo de usuarios de tomcat
- para poder entrar en el
manager
del servidor hay que editar el archivoC:\servidores\ApacheTomcat7.0.27\conf\tomcat-users.xml
- al manager se accede en la dirección
http://localhost:8080/manager/html
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="admin-gui"/>
<role rolename="tomcat"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-status"/>
<user username="admin" password="admin" roles="tomcat,admin-gui,manager-gui,manager-script,manager-status"/>
<user username="javier" password="javier" roles="tomcat,admin-gui,manager-gui,manager-script,manager-status"/>
<user username="tomcat" password="tomcat" roles="tomcat,admin-gui,manager-gui,manager-script,manager-status"/>
</tomcat-users>
- de esta forma los usuario
javier
,tomcat
yadmin
tienen todos los permisos necesarios
server.xml
- ATENCIÓN: No usar acentos en este archivo ni siquiera en los comentarios pues da este error que impide arrancar el servidor
WARNING: Catalina.start using conf/server.xml:
com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Byte no válido 2 de la secuencia UTF-8 de 3 bytes
- cambio
server.xml
para que use la base de datos del pcVAIO
cambiando simplementelocalhost
por192.168.1.111
que es laip
del otro portátil.
<Resource name="jdbc/BDGAB"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
url="jdbc:oracle:thin:@192.168.1.111:1521:xe"
username="gab"
password="desarrollo"
maxActive="20"
maxIdle="10"
maxWait="-1"
scope="Sharable" />
- así evito el conflicto de puertos y libero al portátil de desarrollo.
- en el mismo archivo se configura la conexión a base de datos con la ip y no con
localhost
que no parece funcionar
<Resource auth="Container" driverClassName="oracle.jdbc.driver.OracleDriver" factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory" maxActive="20" maxIdle="10" maxWait="-1" name="epcnt_adm.epcnt_admDatasource" password="desarrollo" scope="Sharable" type="javax.sql.DataSource" url="jdbc:oracle:thin:@biz-desast11-01.aragon.local:1533:DESEDUCA" username="epcnt_usr"/>
CONTEXT.XML
- en el mismo directorio esta el archivo context.xml donde también es necesaria una entrada
<ResourceLink global="epcnv_adm.epcnt_admDatasource" name="epcnt_adm.epcnv_admDatasource" type="javax.sql.DataSource"/>
SESIONES
- creo que se almacenan en el archivo
C:\Servidores\Apache Tomcat 7.0.27\work\Catalina\localhost\epnom\SESSIONS.ser
- por aplicación
- una buena explicación
CONEXIÓN A PREEDUCA
- en el archivo server.xml tengo varios intentos que no funcionan
PROBLEMAS
SERVIDOR BLOQUEADO
- se soluciona con la tecla enter o tabulando
- si seleccionar un texto en la consola de tomcat por ejemplo la select que se lanza aunque parezca mentira se queda bloqueado ;) el servidor
VERIFICAR TOKEN WS - ERROR AL VERIFICAR TOKEN CON GEB
mar 12, 2021 3:24:59 PM org.apache.cxf.phase.PhaseInterceptorChain doDefaultLogging
WARNING: Interceptor for {http://service.verificarTokenWs.ws.geb.aragon.es/}VerificarTokenWsService#{http://service.verificarTokenWs.ws.geb.aragon.es/}verificarTokenWs has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Response was of unexpected text/html ContentType. Incoming portion of HTML stream: <HTML>
<HEAD>
<TITLE>Página en mantenimiento</TITLE>
<link rel="stylesheet" type="text/css" href="/erorrdga/css/internet.css" />
<link rel="stylesheet" type="text/css" href="/errordga/css/dga.css"/>
</HEAD>
<BODY>
<div class="seemTable">
<div class="seemTd100AlignIzq fondoApl1 padding10Inf alto56">
<div class="seemTd25AlignIzq padding10Sup">
<div class="seemTd98AlignIzdfq izquierda logoApl1"> </div>
</div>
<div class="seemTd50AlignIzq izquierda alto56">
<h1 class="sinMargen blanco "> <br>
<span style="font-size:80%; margin-left:37% " class="negrita mayusculas">Página en mantenimiento </span> </h1>
</div>
</div>
<div class="seemTd100AlignIzq usuarioConectado fondoApl2 derecha padding3">
</div>
</div>
<h2>Se ha producido un error al tramitar su petición. Inténtelo nuevamente pasados unos minutos.</h2>
</BODY>
</HTML>
- me da este error al arrancar
- en otra aplicación no pasa
- los archivos de certificados
- cacerts y keystore.jks en
C:\Program Files\Java\jdk1.7.0_25\jre\lib\security
- cacerts y keystore.jks en
- los properties en
C:\Servidores\Apache Tomcat 7.0.27\webapps\properties
apuntaban a una configuración vieja
Caused by: java.lang.NoClassDefFoundError: Lorg/apache/logging/log4j/Logger;
- 2020-10-02 09:03:20
- no despliega EPCNT en local y me da este error después de que ayer funcionara perfectamente
- en el
build.xml
me había dejado la entrada para WL de la última compilación para AST
<!-- Servidor para el que se genera el ear -->
<property name="servidor" value="WL"/>
<!--<property name="servidor" value="Tomcat"/>-->
NO SALEN LOS CSS
- en aplicaciones PADDOC no salen los css
dga.css
yinternet.css
lo que hace que el aspecto sea extraño - esto es porque se ha borrado el contenido de la carpeta
C:\Servidores\Apache Tomcat 7.0.27\webapps
- es en los directorios de esa carpeta donde están esos css y ademas las pantallas de
http://localhost:8080/manager/html/list
PUERTO COMPARTIDO
- el error al lanzar tomcat en el mismo puerto que
oracle
dic 22, 2017 1:42:43 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
dic 22, 2017 1:42:43 PM org.apache.coyote.AbstractProtocol init
SEVERE: Failed to initialize end point associated with ProtocolHandler ["http-bio-8080"]
borrar despliegues
- es importante borrar lo desplegado en
C:\servidores\ApacheTomcat7.0.27\webapps
esto no lo veo claro al menos en la instalación en mi equipo nuevo HPC:\servidores\ApacheTomcat7.0.27\work\Catalina\localhost
- no borrar el despliegue en el directorio
work
hace que los cambios sobre todo en librerías no tengan efecto
con una aplicación simple struts
me da este molesto error
INFO: Despliegue del archivo C:\servidores\ApacheTomcat7.0.27\webapps\Strutus2XML.war de la aplicaci¾n web
dic 28, 2017 9:59:35 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error filterStart
dic 28, 2017 9:59:35 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Fall¾ en arranque del Contexto [/Strutus2XML] debido a errores previos
- miro los
logs
del servidor enC:\servidores\ApacheTomcat7.0.27\logsp
localhost.2017-12-28.log
dic 28, 2017 9:59:35 PM org.apache.catalina.core.StandardContext filterStart
SEVERE: Excepción arrancando filtro struts2
java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1711)
-
borro lo desplegado en
C:\servidores\ApacheTomcat7.0.27\work\Catalina\localhost
-
borrar el directorio
C:\servidores\ApacheTomcat7.0.27\work\Catalina\localhost
-
ha cambiado el problema
- es siempre un consejo de David Torrea 👍
CANNOT CREATE JDBC DRIVER OF CLASS '' FOR CONNECT URL ‘NULL’
18 mar 2020 19:26:07,929 ERROR es.aragon.epdtm.dal.PersonalStoredProcedure:execute(77): ERROR: No se ha podido ejecutar la sentencia en Base de Datos (INTENTO 1): SQL: {? = call EPCNT_PCK_ADM_PARAMETRO.F_OBTENER_PARAMETROS()} {}Could not get JDBC Connection; nested exception is org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
-
revisar si esta bien la conexión de base de datos definida en los archivos context.xml y server.xml
- en el servidor
C:\Servidores\Apache Tomcat 7.0.27\conf\context.xml
- en el servidor
-
es porque hay que copiar los properties en
C:\Servidores\Apache Tomcat 7.0.27\webapps\properties\epcnt_adm
pues es donde los toma el servidor para arrancar- son los que están en la aplicación en
C:\proyectos\epcnt_adm\src\conf\properties\des
para desarrollo
- son los que están en la aplicación en
-
también puede ser porque no este bien definido en este archivo y lo este buscando en el proyecto del que se ha copiado la configuración
web\WEB-INF\applicationContext-WS.xml
LISTENER DOES NOT CURRENTLY KNOW OF SID GIVEN IN CONNECT DESCRIPTOR
18 mar 2020 19:36:52,120 ERROR es.aragon.epdtm.dal.PersonalStoredProcedure:execute(77): ERROR: No se ha podido ejecutar la sentencia en Base de Datos (INTENTO 1): SQL: {? = call EPCNT_PCK_ADM_PARAMETRO.F_OBTENER_PARAMETROS()} {}Could not get JDBC Connection; nested exception is org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
- faltaba poner el SID correcto que es
DESEDUCA
- diferencia entre SID y SERVICE_NAME bastante bien explicado en este blog
java.lang.ClassNotFoundException: es.aragon.eppla.listeners.ApplicationListener
- compila bien pero en el directorio
C:\Proyectos\EPPLA_ADM\build\web\WEB-INF\classes\es\aragon\eppla\listeners
no esta la clase AplicationListener.class - por eso da el error
- cerramos otras aplicaciones y recursos y volvemos a lanzar la compilación
- de esa forma se soluciona
12-Apr-2022 10:49:53.548 INFORMACIÓN [localhost-startStop-1] org.apache.catalina.core.ApplicationContext.log No Spring WebApplicationInitializer types detected on classpath
12-Apr-2022 10:49:53.597 GRAVE [localhost-startStop-1] org.apache.catalina.core.StandardContext.listenerStart Error configurando escuchador de aplicación de clase [es.aragon.eppla.listeners.ApplicationListener]
java.lang.ClassNotFoundException: es.aragon.eppla.listeners.ApplicationListener
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1415)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1223)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:537)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:518)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:149)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4686)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5232)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:753)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:727)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:695)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:673)
at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1881)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
12-Apr-2022 10:49:53.597 GRAVE [localhost-startStop-1] org.apache.catalina.core.StandardContext.listenerStart Se ha saltado la instalación de escuchadores de aplicación debido a error(es) previo(s)
(Error de E/S: The Network Adapter could not establish the connection)
26 mar 2020 13:23:26,340 ERROR es.aragon.epdtm.dal.PersonalStoredProcedure:execute(98): ERROR: No se ha podido ejecutar la sentencia en Base de Datos (INTENTO 2): SQL: {? = call EPCNT_PCK_P_ADM_PARAMETRO.F_OBTENER_PARAMETROS()} {}Could not get JDBC Connection; nested exception is org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Error de E/S: The Network Adapter could not establish the connection)
- en el archivo server.xml del servidor asegurarse de que no hay entradas repetidas pues eso produce errores e incoherencias
ENLACE DE LOS PROPERTIES
- durante la migración a Java 8 y al Tomcat 8 nos dio problemas hasta que vimos como se conectaba la aplicación con los properties que están en el servidor
- En el fichero “catalina.bat” añadir la referencia al properties:
set "CLASSPATH=%CLASSPATH%;%CATALINA_HOME%\webapps\properties"