SIGESA-VISUAL CODE: Error org.apache.catalina.core.StandardContext.startInternal Falló en arranque del Contexto [/sigesa-webapp] debido a errores previos

Escenario

  • Actualmente se encuentra en este estado la configuración de SIGESA
  • Versión de maven 3.6.3
  • Versión de java java-1.8.0-openjdk-amd64
  • Plugin Community Server Conector: v0.26.4
  • Configuración de visual code File->Preferences->Settings
{
    "redhat.telemetry.enabled": false,

    "workbench.iconTheme": "material-icon-theme",
    "java.configuration.runtimes": [
    

        {
            "name": "JavaSE-1.8",
            "path": "/usr/lib/jvm/java-1.8.0-openjdk-amd64"
        }    
    ],
    "files.exclude": {
        "**/.classpath": true,
        "**/.project": true,
        "**/.settings": true,
        "**/.factorypath": true,
        "**/faces-config.NavData": true,
        "**/nbactions.xml": true,
        "**/nb-configuration.xml": true,
        "**/ajcore.*.txt": true,
        "**/*.log": true,
        "**/target": true
    },
    "search.exclude": {
        "**/target": true,
        "**/bin": true,
        "*/target": true,
        "*/bin": true
    },
    "sdkuna.maven.executable.path": "/home/cgi/apache-maven-3.6.3/bin/mvn",
    "sdkuna.maven.offline": false,
    "html.suggest.html5": false,
    "sdkuna.java.author": "Gustavo Matamoros González",
    "html.format.wrapAttributes": "force-aligned",
    "oracledevtools.query.clearResultsWindow": true,
    "oracledevtools.query.resultSet.maxRows": -1,
    "oracledevtools.query.autoCommit": false,
    "oracledevtools.query.resultSet.pageSize": 25,
    "debug.toolBarLocation": "docked",
    "java.format.settings.url": "https://artifactory.una.ac.cr/artifactory/prueba-sdkuna/java-formatter.xml",
    "java.format.settings.profile": "JavaConventions",
    "sdkuna.ssh.host": "http://10.0.100.30:8080",
    "java.jdt.ls.vmargs": "-XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xms2048m -Xmx5000m -Xmx1G -Xms100m",
    "rsp-ui.rsp.java.home": "/usr/lib/jvm/java-11-openjdk-amd64/"
}
  • Configuración del workspace
{
	"folders": [
		{
			"path": "sigesa/sigesa-aggregator"
		},
		{
			"path": "sigesa/sigesa-ppi-ppo"
		},
		{
			"path": "sigesa/sigesa-ppi-ppe"
		},
		{
			"path": "sigesa/sigesa-ppi-mcg"
		},
		{
			"path": "sigesa/sigesa-webapp"
		},
		{
			"path": "sigesa"
		}
	]
}
  • Versión de tomcat 8.5.78

Sobre el error

  • Todo el proyecto SIGESA compila de forma correcta
  • El servidor tomcat 8.5.78 levanta de forma correcta en «Run» y «Debug»
  • Pero a la hora de realizar el despliegue muestra el error
org.apache.catalina.core.StandardContext.startInternal Falló en arranque del Contexto [/sigesa-webapp] debido a errores previos
  • Por tanto si nos metemos en el log’s del tomcat catalina.fecha.log
home/cgi/apache-tomcat-8.5.78/logs/
  • Nos muestra que error
15-Mar-2023 18:34:33.083 GRAVE [http-nio-8080-exec-3] org.apache.catalina.core.StandardContext.startInternal Falló en arranque del Contexto [/sigesa-webapp] debido a errores previos
  • Como se ve indicar que ocurrierón errores previos
  • Por tanto si revisamos el log anterior existe este error
15-Mar-2023 18:34:33.082 GRAVE [http-nio-8080-exec-3] org.apache.catalina.core.StandardContext.startInternal One or more listeners failed to start. Full details will be found in the appropriate container log file
  • Que nos indica que revisemos el log del despligue el cual es localhost.fecha.log
  • Vamos a encontrar el error GRAVE
16-Mar-2023 09:05:51.365 GRAVE [http-nio-8080-exec-5] org.apache.catalina.core.StandardContext.listenerStart Excepción al enviar evento inicializado de contexto a instancia de escuchador de clase [org.springframework.web.context.ContextLoaderListener]
	org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in URL [jar:file:/home/cgi/apache-tomcat-8.5.78/webapps/sigesa-webapp/WEB-INF/lib/sdkuna-dl-sl-config-2.5.0.jar!/META-INF/spring/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
  • Y si bajamos un poco más encontramos el siguiente error
Caused by: java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException

Solución

  • El problema que se presenta es que al tomcat le hace falta una librería y una configuración del tomcat en visual
  • Entonces lo primero sería abrir en Visual Code el archivo de configuración File->Preferences->Settings
  • Y modificamos la linea
"java.jdt.ls.vmargs": "-XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xms2048m -Xmx5000m -Xmx1G -Xms100m",
  • Para agregarle la opción
-XX:+IgnoreUnrecognizedVMOptions
  • Quedando así:
"java.jdt.ls.vmargs": "-XX:+IgnoreUnrecognizedVMOptions -XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xms2048m -Xmx5000m -Xmx1G -Xms100m",
  • El segundo paso es descargar de forma manual la librería que no esta disponible
  • Nos posicionamos en la carpeta del tomcat
cd /home/cgi/apache-tomcat-8.5.78/lib
  • Y descargamos la librería de maven
sudo wget https://repo1.maven.org/maven2/javax/xml/bind/jaxb-api/2.4.0-b180830.0359/jaxb-api-2.4.0-b180830.0359.jar
  • Y luego la renombramos
sudo mv jaxb-api-2.4.0-b180830.0359.jar jaxb-api.jar
  • Luego salimos a la carpeta del tomcat
cd /home/cgi/apache-tomcat-8.5.78/
  • Y le damos permisos de ejecución
sudo chmod 777 -R *

Modo run

  • Compilamos el proyecto SIGESA
    • Primero sigesa-aggregator
    • Y después el parent «sigesa» para que compile todo
  • Con esto ya podemos levantar el servidor en modo run en visual code
  • Plugin -> Community Server Conector -> Tomcat 8.5.78 -> Clic derecho -> Start Run Mode
  • Y luego sobre el proyecto sigesa-webapp -> clic derecho -> «Run on Tomcat Server Cargo «
  • Y podemos ver que el proyecto levanta

Modo debug

  • Si se intenta levantar en modo debug comienza tambien a dar errores de librería
  • Por tanto es necesario incluir todas estas librería dentro de
  • Descargar: librerías
/home/usuario/apache-tomcat-8.5.78
  • y con esto levanta en modo debug