webLogic

PROPÓSITO

  • anotar lo relativo a WebLogic un servidor web de Oracle
  • la entrada de la wikipedia sobre WebLogic

WEBLOGIC DE EDUCACIÓN

  • en la url hay montado en un docker que administra Chema Conesa un weblogic lo más parecido al que usa AST
  • versión Versión de WebLogic Server: 12.2.1.2.0
  • instrucciones en H:\ecinform\Aplicaciones\Paddoc\Varios\Servidor Weblogic Pruebas

LANZAR EL SERVIDOR WEBLOGIC

  • en local tengo la versión Versión de WebLogic Server: 12.1.2.0.0

  • Ejecutar configure.cmd desde consola ms-dos

    • Configurar dominio respondemos que si Y
  • pero da error

  • usuario y contraseña admin / admin12345 para que sea válida

  • lanzo el bath C:\Servidores\startWebLogic.cmd

  • y me conecto a la consola http://localhost:7001/console/login/LoginForm.jsp

    • username / pass: admin / admin12345

DEFINIR EL JDK

  • se puede definir en el archivo C:\Servidores\wls12120\user_projects\domains\mydomain\bin\setDomainEnv.cmd

DEFINIR UNA CONEXIÓN A BASE DE DATOS

  • Antes de desplegar un ear desde la consola de administración, debemos definir la conexión a bd

    • nuevo origen de datos genérico
      • Creación de Nuevo Origen de Datos JDBC
      • Servicios / Orígenes de datos
        • Nombre: poolEPCNT
        • Nombre de jndi: epcnt.epcntDatasource
        • Nombre bd: orad
        • Tipo de base de datos Oracle
  • siguiente

    • Nombre clase del controlador: oracle.jdbc.OracleDriver
    • usuario epnom_usr
    • contraseña desarrollo en HP casa
      • se puede configurar todo al final con la URL
      • URL jdbc:oracle:thin:@biz-desast11-01.aragon.local:1533:DESEDUCA
      • es la que uso para epnom en el pc de la dga y el test funciona
      • para el pc de casa
        • para epnom en casa ordenador HP
        • jdbc:oracle:thin:@localhost:1521:orcl
          • segundo intento
          • jdbc:oracle:thin:@127.0.0.1:1521:ORCL
        • el nombre era EPNOM y no poolEPNOM
  • test

    • IMPORTANTE: se mostrará una última pantalla en la que aparece un check para que relacionemos el origen de datos con el dominio del weblogic que queremos relacionar. Marcamos el nuestro (único que hay)
  • DESTINOS SERVIDORES

    • myserver
  • PARA EPNOM_ADM 2020-07-31 08:42:21

  • Nombre: poolEPNOM_ADM

  • Nombre de jndi: epnom_adm.epnom_admDatasource

  • Nombre bd: orad

  • Tipo de base de datos Oracle

  • contraseña EPNOM_ADM

  • Wbs#7JT9

  • URL jdbc:oracle:thin:@biz-desast11-01.aragon.local:1533:DESEDUCA

  • prueba de conexión correcta

  • DESTINOS SERVIDORES

    • myserver
  • en la pestaña

    • Directorio Raíz >Resumen de Servicios >Resumen de Orígenes de Datos JDBC >poolEPNOM >Resumen de Orígenes de Datos JDBC >poolEPNOM_ADM >Resumen de Despliegues >Resumen de Servidores >Resumen de Despliegues >Resumen de Orígenes de Datos JDBC >poolEPNOM_ADM
    • Pool de conexiones
      • Nombre de Clase del Controlador: oracle.jdbc.xa.client.OracleXADataSource
      • jdbc:oracle:thin:@biz-desast11-01.aragon.local:1533:DESEDUCA

DESPLIEGUE

  • Despliegues – Instalar – Seleccionar el ear
  • pongo la ruta C:\Proyectos\epcnt\dist para que salga el archivo en la lista
  • IMPORTANTE: Seleccionar: Instalar despliegue como aplicación
  • Admin server

PARA ARRANCAR LA APLICACIÓN

  • en el panel izquierdo de la consola de administración seleccionar despliegue
    • en el panel derecho, seleccionar el check de la aplicación que se quiere arrancar
    • Click start y seleccionar el servicio. Iniciar sirviendo todas las solicitudes
  • luego la aplicación esta disponible en http://192.168.1.108:7001/epnom/ por ejemplo
  • también se puede ver en Directorio Raíz >Resumen de Despliegues >epnom >Resumen de Despliegues >epnom >Resumen de Despliegues >Resumen de Servicios >Resumen de Despliegues >epnom
  • los errores se pueden ver en la consola donde se ha lanzado el servidor
  • atención pues este servidor es más delicado con los jsp y no pasa si hay imports que no funcional cosa que Tomcat si que los pasa sin dar error siquiera

PARA PARAR LA APLICACIÓN USO EL BATH DEL DIRECTORIO

  • C:\Servidores\wls12120\user_projects\domains\mydomain\bin\stopWebLogic.cmd

    • no funciona en casa
  • los logs del servidor C:\Servidores\wls12120\logs pero no veo nada actual ??

    • en esta ruta si que veo cosas actuales
    • C:\Servidores\wls12120\user_projects\domains\mydomain\servers\myserver\logs
    • no los veo en el ordenador de casa HP
  • atención al nombre del pool epcnt.epcntDatasource

  • en la carpeta C:\Servidores\wls12120\user_projects\domains\mydomain\epcnt poner los archivos de desarrollo epcnt.properties y log4j2.xml

    • de la carpeta C:\Proyectos\epcnt\src\conf\properties\des
  • no funciona

    • vuelvo a generar el ear con build.xml cambiado a servidor WL
  • cuidado con la IP para las sesiones pues da error si te conectas con localhost en vez de la IP

  • no funciona por problemas de sesión en modo normal

    • con la misma aplicación desplegada en el mismo web logic pero desde el mismo navegador, Chrome , en modo incógnito si que funciona

DESPLEGAR CAMBIOS

  • una vez configurada sólo es necesario seleccionar la aplicación y pulsar actualizar
  • hay un directorio llamado autodeploy que parece que sirve para desplegar el ear automáticamente según lo que pone en el readme.txt de ese directorio pero esto no esta probado
  • la aplicación se ve en la dirección

DESPLEGAR APLICACIONES

Start Web applications

Starting a Web application makes it available to WebLogic Server clients. Before you can start a Web application, you must first install it. See Install a Web application.

To start a Web application:

In the left pane of the Console, select Deployments.
Select Control.
In the Deployments table, select the check boxes next to the Web applications you want to start.
Click Start and choose to start servicing all requests to the Web application or to start servicing only administration requests to the Web application.

PROBLEMAS

java.lang.ClassNotFoundException: es.aragon.epcnv.listeners.ApplicationListener

  • Error is: "weblogic.application.ModuleException: java.lang.ClassNotFoundException: es.aragon.epcnv.listeners.ApplicationListener"

weblogic.application.ModuleException: null null

  • un error que daba al desplegar en el Web Logic de AST cuando estamos con la migración de java 7 a 8 y el tema de la vulnerabilidad de log4j
se registra la siguiente excepcion:

####<04-ene-2022 11H38' CET> <Error> <Deployer> <miv-pdofm-01.aragon.local> <EDU_01_1> <[STANDBY] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1641292727978> <BEA-149265> <Failure occurred i
n the execution of deployment request with ID "18823702511031621" for task "4". Error is: "weblogic.application.ModuleException: null
null"
weblogic.application.ModuleException: null
  • no estaba quitada la carpeta versions del jar log4j-api-2.17.0.jar
  • el jar se le añade la extensión zip se quita la carpeta y se vuelve a cambiar la extensión
  • hay un enlace a una web donde lo explica

JAVA.LANG.OUTOFMEMORYERROR: JAVA HEAP SPACE

  • al subir el fichero da este error [java.lang.OutOfMemoryError: Java heap space]
  • para controlar este problema de memoria modifico el archivo C:\Servidores\wls12120\user_projects\domains\mydomain\bin\setDomainEnv.cmd
  • antes veo los parámetros que se usan al arrancar el servidor sacando la salida del comando a un archivo C:\Servidores\startWebLogic.cmd > salida.txt
-- antes
JAVA Memory arguments: -Xms256m -Xmx512m -XX:CompileThreshold=8000 -XX:PermSize=128m  -XX:MaxPermSize=256m
-- después
JAVA Memory arguments: -Xms4096m -Xmx4096m -XX:CompileThreshold=8000 -XX:PermSize=128m  -XX:MaxPermSize=4096m
  • he modificado en el archivo los valores 256m y 512m por 4096m y con eso funciona

    • hay otro valor que no he cambiado pero que puede que sea interesante que es 128m que aparece en PermSize=128m
  • en un intento anterior modifico los parámetros del servidor [myserver](Directorio Raíz >poolEPNOM_ADM >Resumen de Despliegues >Resumen de Servidores >Resumen de Despliegues >Resumen de Orígenes de Datos JDBC >poolEPNOM_ADM >Resumen de Despliegues >Resumen de Entorno >Resumen de Servidores >myserver)

    • con estos valores -Xms2048m -Xmx4096m -XX:MaxPermSize=4096m -XX:MaxPermSize=4096m
    • -Xms2048m -Xmx4096m -XX:MaxPermSize=512m -XX:MaxPermSize=1024m estos son los de la imagen
    • siguiendo los consejos de este post

WEB_LOGIC_AUMENTAR_HEAP_SIZE_JVM

  • pero no soluciona el problema

INVALID INITIAL HEAP SIZE: -XMS4096M

  • en el pd de la DGA con la solución de 4096 me da este error al arrancar

  • Invalid initial heap size: -Xms4096m The specified size exceeds the maximum representable size. Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit.

  • consigo que funcione con esta salida pues con más memoria daba problemas al no poder reservar tanta memoria

JAVA Memory arguments: -Xms256m -Xmx1024m -XX:CompileThreshold=8000 -XX:PermSize=128m -XX:MaxPermSize=4096m

if NOT "%JAVA_VENDOR%"=="HP" (
	if "%VM_TYPE%"=="HotSpot" (
		set WLS_MEM_ARGS_64BIT=-Xms256m -Xmx1024m
		REM set WLS_MEM_ARGS_64BIT=-Xms4096m -Xmx4096m
		set WLS_MEM_ARGS_32BIT=-Xms256m -Xmx1024m
		REM set WLS_MEM_ARGS_32BIT=-Xms4096m -Xmx4096m
	)
)

APLICACION FUNCIONA EN LA PRIMERA PANTALLA PERO LUEGO DA ERROR DE AUTENTICACIÓN

  • en el fichero C:\proyectos\epnom_adm\src\conf\weblogic-application.xml el valor de <wls:cookie-path>/epcnt_adm</wls:cookie-path> no era correcto

LOCALHOST O IP

  • con la url como localhost:7001/epnom/start.action?token=1&idUsuario=85079443M&idAplicacion=15&aplOrigen=epdtp da error de autenticación pues no resuelve bien las sesiones
  • es necesario usar la ip 192.168.1.109:7001/epnom/start.action?token=1&idUsuario=85079443M&idAplicacion=15&aplOrigen=epdtp

LA APLICACIÓN APARECE COMO OK PERO NO ARRANCA - DATASOURCE

  • me pasaba con epnom y en los logs veía este error
Caused By: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'documentoAplicacionDAL' defined in URL [zip:C:/Servidores/wls12120/user_projects/domains/mydomain/servers/myserver/tmp/_WL_user/epnom/vl4az1/war/WEB-INF/lib/_wl_cls_gen.jar!/es/aragon/epnom/dal/aplicacion/DocumentoAplicacionImplDAL.class]: Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource': Invocation of init method failed; nested exception is javax.naming.NameNotFoundException: While trying to lookup 'epnom.epnomDatasource' didn't find subcontext 'epnom'. Resolved ''; remaining name 'epnom/epnomDatasource'
  • en los logs C:\Servidores\wls12120\user_projects\domains\mydomain\servers\myserver\logs\myserver.log y C:\Servidores\wls12120\user_projects\domains\mydomain\servers\myserver\logs\mydomain.log aparece el error inicial
####<03-JUN-2020 12H16' CEST> <ERROR> <HTTP> <HP-JAVIER> <MYSERVER> <[ACTIVE] EXECUTETHREAD: '3' FOR QUEUE: 'WEBLOGIC.KERNEL.DEFAULT (SELF-TUNING)'> <<WLS KERNEL>> <> <> <1591179361329> <BEA-101020> <[SERVLETCONTEXT@2023628636[app:epnom module:epnom path:null spec-version:3.0]] Servlet failed with an Exception
The Struts dispatcher cannot be found.  This is usually caused by using Struts tags without the associated filter. Struts tags are only usable when the request has passed through its servlet filter, which initializes the Struts dispatcher needed for this tag. - [unknown location]
  • tenía puesto epnom.epnomDataSource en vez de epnom.epnomDatasource …. el mensaje de error era claro ….

ERROR WS.ENDPOINT.VERIFICARTOKEN EN EL WEBLOGIC DE CHEMA

Error Se ha producido un error durante la activación de los cambios, consulte el log para obtener más información.
Error java.lang.IllegalArgumentException: Could not resolve placeholder 'ws.endpoint.verificartoken' in value "${ws.endpoint.verificartoken}"
Error Could not resolve placeholder 'ws.endpoint.verificartoken' in value "${ws.endpoint.verificartoken}"
  • es necesario subir con filezilla los properties al servidor
  • instrucciones en H:\ecinform\Aplicaciones\Paddoc\Varios\Servidor Weblogic Pruebas

PROBLEMAS AL REINICIAR EL SERVIDOR

  • da este problema
Advertencia El servidor AdminServer se encuentra en un estado incompatible.
Advertencia Todos los servidores seleccionados se encuentran actualmente en un estado incompatible con esta operación o no están asociados a un gestor de nodos en ejecución, o bien el usuario no está autorizado para realizar la acción solicitada. No se realizará ninguna acción.
  • pruebo con la opción de forzar cierre y funciona aunque le cuesta más arrancar