Avatar billede cckring Praktikant
05. januar 2006 - 22:30 Der er 4 kommentarer og
1 løsning

Runtime classpath for utility-jar der extender JSF-klasser

Jeg er ved at lave et lille WEB-framework i en utility-jar som flere J2EE applikationer i vores firma skal benytte på en WebSphere Application Server. Det er altså ikke en war-fil med opbygning som et web-projekt men en basal jar-fil med nogle utility-klasser til brug for web-delen af applikationerne.

Nogle af klasserne i min utility-jar refererer til JSF-klasser, og jeg har derfor sat buildpath op til jsf-api.jar, jsf-impl.jar på projektet i WSAD.

Min proof-applikation virker fint med utility.jaren når jeg kører det i WTE på min workstation, men når jeg deployer får jeg ClassNotFoundException på de JSF-klasser som utility-jaren refererer.

Jeg kan ikke finde ud af, hvordan jeg sætter path op til ovennævnte jar-filer så min utility.jar kan se dem runtime. Jar-filerne ligger i mit web-projekt\Web Content\WEB-INF\lib, men der kan utility-projektet jo ikke få path til dem.

Jeg har derfor forsøgt at lægge dem i roden af min ear-fil og sætte dem op i META-inf\manifest.mf på min utility.jar - men det nytter tilsyneladende heller ikke noget, for så kan applikationen slet ikke køre i WTE.

Hvar gør jeg forkert?

mvh/Carsten
Avatar billede arne_v Ekspert
05. januar 2006 - 22:53 #1
umiddelbart tror jeg at den mest klassiske løsning er at deploye en kopi af
din utility.jar i hver wars WEB-INF/lib

en af pointerne er at du kan køre med forskellige versioner af din utility.jar
for forskellige applikationer

manifest Class-Path direktiv bør virke, men det bliver nemt moget høkerværk

ændres WAS til at bruge en classloader ville også løse problemet, men vil nemt
kunne have bivirkninger
Avatar billede cckring Praktikant
05. januar 2006 - 23:10 #2
Tak for dit hurtige svar.

Det er et meget godt bud. Det gik faktisk lige op for mig, at jeg har sat mit utility-projekt ind, så det optræder som jar-fil to steder i min applikation - både som Project Utility Jar i WSAD's application deployment descriptor og og under mit web-projekt Properties -> Web Library Projects.

Det er selvfølgelig planen at utility-jaren skal trækkes ind og ligge i roden af ear-projektet og ind under ..\Web Content\WEB-INF\lib, som du også skriver men mens jeg udvikler på den er det en fordel at gøre som beskrevet med web-projekt Properties -> Web Library Projects.

Det rigtige må være, som du skriver, at utility-jaren skal ligge under ..\Web Content\WEB-INF\lib, så nu har jeg fjernet den fra Application Deployment Descriptor.

Det virker i WTE'en så nu skal jeg bare have buildet applikationen og deploye til serveren - det ved jeg ikke lige om jeg når i aften.

- men det tyder lidt på at der er points på vej til dig engang i morgen ;-)
Avatar billede cckring Praktikant
11. januar 2006 - 10:54 #3
Points til dig.
Avatar billede cckring Praktikant
11. januar 2006 - 10:57 #4
Sender du et svar, så jeg kan give dig points?
Avatar billede arne_v Ekspert
11. januar 2006 - 14:59 #5
kommer her
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester