2012-07-05 20 views
5

Mi programa JSP está configurado para ejecutarse en Websphere bajo HP-UX.Cargando * .so archivos en Websphere

Tengo algunos archivos .jar y un archivo .so que contiene las clases que mi programa necesita para ejecutarse.

Al colocar mis archivos .jar en la carpeta \MyProgram\WEB-INF\lib\, pude obtener algo para trabajar.

Sin embargo, veo un UnsatisfiedLinkError que es causado por mi archivo lib.so no reconocido.

Una de las maneras que encontré fue:

  1. En consola administrativa, vaya a Entorno -> Shared Bibliotecas -> Nueva

  2. Introduzca las ubicaciones de los archivos .jar en rutas de clases, entrar en el. de modo de ubicación del archivo en la ruta de biblioteca nativa

  3. En consola administrativa, vaya a Aplicaciones -> Tipos de aplicación -> Aplicaciones de empresa

  4. En MyProgram -> Referencias de bibliotecas compartidas -> Mapeo de bibliotecas compartidas, asigne la biblioteca al programa moviéndola de Disponible a Seleccionado.

Tengo dos preguntas:

  1. ¿Puedo obtener los archivos .jar y el archivo .so trabajar desde la carpeta de mi programa \lib\ en su lugar?

  2. Si no puedo, ¿es posible listar la ruta de clases y la ruta de la biblioteca nativa desde la carpeta de mi aplicación? Algo así como cargar mi application.war con un directorio variable de websphere %MYPROGRAM%\WEB-INF\lib\lib.so en lugar de colocar el archivo en el servidor físico con una ruta absoluta C:\IBM\WebSphere\AppServer\bin\lib.so?

[INS-01] Más detalles a continuación:

Error received: "Error 500: java.lang.UnsatisfiedLinkError: com.chrysalisits.crypto.LunaAPI.Initialize()V"

Estoy intentando conseguir Websphere para interactuar con LUNASA HSM para recuperar las claves públicas/privadas. Me han proporcionado: libLunaAPI.sl, libLunaAPI.so, LunaJCASP.jar, LunaJCESP.jar. Desde IBM Websphere V8 -> References -> Class Loading Exceptions, indica que necesito el archivo * .so para HP-UX, así que lo hice accordingly. El conjunto de rutas son rutas absolutas que he especificado en la Websphere. Esto se relaciona con mi segunda pregunta.

La primera pregunta es si realmente me pregunto si puedo poner estos archivos en myProgram.war y ejecutarlos desde allí en lugar de usar WinSCP para acceder al servidor y colocar allí los archivos para referencias de rutas absolutas. Tal vez especifique que los archivos mencionados anteriormente se encuentran en mi programa, bajo \ WEB-INF \ lib \ en su lugar. Esto se debe a que solo este programa mío tendrá acceso al LunaSa HSM.

** PS. Intenté ambos métodos, pero aún falla. suspiro.

+0

De la documentación de WebSphere (al menos hasta la versión 7, no he buscado más allá de eso), parece que las bibliotecas nativas solo se pueden cargar desde el sistema PATH o desde una biblioteca compartida. Es decir, no desde la ruta desplegada de una Aplicación Web individual. No creo entender su pregunta 2. – dbreaux

+1

Hola Dbreaux, estoy intentando que Websphere recupere las claves de un LunaSa HSM. Desafortunadamente, un UnsatisfiedLinkError me sigue diciendo que hay algo mal: "Causado por: java.lang.UnsatisfiedLinkError: com.chrysalisits.crypto.LunaAPI.Initialize() V en com.chrysalisits.crypto.LunaAPI.Initialize (Native Method) en com .chrysalisits.crypto.LunaTokenManager. (LunaTokenManager.java:107) en com.chrysalisits.crypto.LunaTokenManager.getInstance (LunaTokenManager.java:62) en com.chrysalisits.cryptox.LunaJCEProvider. (LunaJCEProvider.java:149) en ... " –

+0

De hecho, traté de colocar los archivos .war y .so en el directorio de Websphere y vincularlos antes de asignar la biblioteca a mi programa. El error aún ocurre, no estoy seguro si es la forma correcta de vincular la biblioteca al programa. –

Respuesta

1

Para la implementación de biblioteca compartida, creo que se especifica sólo el directorio en la ruta de biblioteca nativa, no el nombre de archivo . Es decir, con su ubicación actual de archivo, /opt/apps/WebSphere/AppServer/bin.

Por otro lado, espero que ese directorio ya esté en los WAS_LIBPATH y SHLIB_PATH de WebSphere, por lo que no debería ser necesario listarlo en absoluto. (Verifique $WAS_HOME/bin/setupCmdLine.sh.)

Sin embargo, creo que sería mejor crear un subdirectorio en alguna parte para sus archivos luna, y en su lugar apunte a la Biblioteca de su biblioteca nativa.