2012-07-05 9 views
5

Il mio programma JSP è impostato per l'esecuzione su Websphere in HP-UX.Caricamento di file * .so in Websphere

Ho alcuni file .jar e un file .so che contiene le classi che il mio programma deve eseguire.

Inserendo i miei file .jar nella cartella \MyProgram\WEB-INF\lib\, sono riuscito a far funzionare alcuni.

Tuttavia, vedo un UnsatisfiedLinkError che è causato dal mio file lib.so non riconosciuto.

Uno dei modi che ho trovato era:

  1. In console di gestione, vai a Ambiente -> Shared Biblioteche -> Nuovo

  2. Inserire i percorsi dei file .jar in Classpath, inserire il. quindi la posizione file in Native Biblioteca percorso

  3. In console di gestione, andate su Applicazioni -> Tipi di applicazione -> Applicazioni Enterprise

  4. In MyProgram -> Riferimenti libreria condivisa -> Mappatura libreria condivisa, assegnare la libreria al programma spostandolo da Disponibile a Selezionato.

Ho due domande:

  1. Posso solo ottenere i file .jar e il file .so di lavorare dalla cartella del mio programma \lib\ invece?

  2. Se non riesco, è possibile elencare il percorso di classe e il percorso della libreria nativa dalla cartella dell'applicazione? Qualcosa come caricare la mia application.war con una directory variabile websphere %MYPROGRAM%\WEB-INF\lib\lib.so invece di posizionare il file nel server fisico con un percorso assoluto C:\IBM\WebSphere\AppServer\bin\lib.so?

[EDIT-01] Ulteriori dettagli di seguito:

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

io sto cercando di ottenere Websphere di interfacciarsi con Lunasa HSM per recuperare le chiavi pubbliche/private. Mi hanno fornito: libLunaAPI.sl, libLunaAPI.so, LunaJCASP.jar, LunaJCESP.jar. Da Websphere V8 di IBM -> Riferimenti -> Eccezioni di caricamento classi, indica che ho bisogno del file * .so per HP-UX, così ho fatto quello accordingly. I path set sono percorsi assoluti che ho specificato nella Websphere. Questo riguarda la mia seconda domanda.

La prima domanda è in realtà mi chiedo se posso mettere questi file in myProgram.war e scappare da lì invece di utilizzare WinSCP per accedere al server e caricamento dei file lì per percorsi assoluti riferimenti. Forse specificare che i file sopra menzionati si trovano nel mio programma, in \ WEB-INF \ lib \ invece. Questo perché solo questo mio programma accederà al LunaSA HSM.

** PS. Ho provato entrambi i metodi ma non riesce ancora. sospiro.

+0

Dalla documentazione di WebSphere (almeno fino alla versione 7, non ho guardato oltre), sembra che le Librerie native possano essere caricate solo dal PATH di sistema o da una Libreria condivisa. Ovvero, non dal percorso distribuito di un'applicazione Web individuale. Non credo di aver capito la tua domanda 2. – dbreaux

+1

Ciao dbreaux, sto cercando di ottenere Websphere per recuperare le chiavi da un HSM LunaSA. Sfortunatamente, un UnsatisfiedLinkError continua a dirmi che c'è qualcosa di sbagliato: "Causato da: java.lang.UnsatisfiedLinkError: com.chrysalisits.crypto.LunaAPI.Initialize() V su com.chrysalisits.crypto.LunaAPI.Initialize (Metodo nativo) su com .chrysalisits.crypto.LunaTokenManager. (LunaTokenManager.java:107) su com.chrysalisits.crypto.LunaTokenManager.getInstance (LunaTokenManager.java:62) su com.chrysalisits.cryptox.LunaJCEProvider. (LunaJCEProvider.java:149) a ... " –

+0

Ho effettivamente provato a inserire i file .war e .so nella directory Websphere e collegarli prima di assegnare la libreria al mio programma. L'errore si verifica ancora, non troppo sicuro se è il modo corretto di collegare la libreria al programma. –

risposta

1

Per l'attuazione libreria condivisa, credo che si specifica solo la directory nel percorso nativo Biblioteca, non il nome del file . Cioè, con la posizione del file corrente, /opt/apps/WebSphere/AppServer/bin.

D'altra parte, mi aspetto che directory di essere già di WAS_LIBPATH e WebSphere SHLIB_PATH, quindi dovrebbe essere superfluo elencare affatto. (Controllare $WAS_HOME/bin/setupCmdLine.sh.)

Tuttavia, penso che sarebbe meglio creare una sottodirectory da qualche parte per i file Luna, e puntare il percorso condiviso libreria nativa Biblioteca a che, invece.