Avatar billede conrad Nybegynder
18. januar 2003 - 21:57 Der er 13 kommentarer og
1 løsning

fornuftig CLASSPATH

jeg sidder og udvikler beans og benytter JBOSS. Mit problem  opstår når jeg skal skrive en Sessionbean som skal benytte en EntityBean.

EntityBeanen er deployed på serveren i en jar. Når jeg så compiler Sessionbeanen kan den ikke finde Entitybeanen, hvilket vel er meget naturligt da den ikke står i CLASSPATHEN.

Er der en måde jeg kan sætte CLASSPATHEN på så jeg ikke skal ind at tilføje en ny sti hver gang jeg laver en ny jar? (jeg compiler direkte fra DOS-prompt)
Avatar billede arne_v Ekspert
18. januar 2003 - 22:01 #1
Du kan godt putte flere EJB'er i samme EJB JAR !

Så hvis du putter de session beans og entity beans der logisk hører
sammen i samme directory, builder i det directory, laver en jar-fil
med alle EJB og redeployer den.
Avatar billede arne_v Ekspert
18. januar 2003 - 22:01 #2
Godt råd iøvrigt: brug ant til at builde, pakke og deploye med !
Avatar billede arne_v Ekspert
18. januar 2003 - 22:12 #3
Iøvrigt: ved at pakke flere EJB'er i samme EJB JAR, så kan
du pakke utility klasser som kun bruges af denne gruppe
EJB'er ned i JAR filen.
Avatar billede conrad Nybegynder
18. januar 2003 - 22:37 #4
Jeg har desværre ikke tid til at sætte mig ind i ANT lige pt (skal aflevere projekt fredag).

Kan du overskue om en simpelt package struktur som understående kunne benyttes?
minebeans
->ejb1
->ejb2
->ses1
->ses2
Avatar billede arne_v Ekspert
18. januar 2003 - 22:43 #5
Vent med ant til efter aflevering !
Avatar billede arne_v Ekspert
18. januar 2003 - 22:45 #6
Ideen med at have en EJB JAR med alle EJB'er i virker
uanset pakke-struktur.

Du skal bare sætte classpath til toppen af strukturen, når
du builder.

Og du skal stå i toppen af structuren og lave JAR filen
med alle .class-filerne.
Avatar billede conrad Nybegynder
18. januar 2003 - 22:54 #7
ok så jeg har bare en package mybeans;
og i samtlige klasser skriver jeg
package mybeans;

Er det sådan?
Avatar billede arne_v Ekspert
18. januar 2003 - 22:56 #8
Det kan du sagtens.

Du kan også have 2 pakker: mybeans.session og mybeans.entity.

De skal bare have den rigtige directory struktur på disk
og inde i JAR filen.

Og så skal klasse navnene i ejb-jar.xml naturligvis have
korrekt klasse.
Avatar billede arne_v Ekspert
18. januar 2003 - 23:01 #9
Hvis projektet ligger i f.eks. C:\proj
så ligger de 2 pakker i mit eksempel ovenfor
i C:\proj\mybeans\session og C:\proj\mybeans\entity,
classpath sættes altid til C:\proj, og proj-ejb.jar
indeholder:
  mybeans/session/Ses1.class
  mybeans/session/Ses1Home.class
  mybeans/session/Ses1Bean.class
  mybeans/session/Ses2.class
  mybeans/session/Ses2Home.class
  mybeans/session/Ses2Bean.class
  mybeans/entity/Ent1.class
  mybeans/entity/Ent1Home.class
  mybeans/entity/Ent1Bean.class
  mybeans/entity/Ent2.class
  mybeans/entity/Ent2Home.class
  mybeans/entity/Ent2Bean.class
  META-INF/ejb-jar.xml
  META-INF/jboss.xml
  META-INF/jaws.xml
Avatar billede conrad Nybegynder
18. januar 2003 - 23:18 #10
ok, lige nu har jeg bare smidt det hele i en package. Det virker som det letteste. Det bliver godt nok lift tungt at loade men hvad, det er et eksperimentielt projekt så det går nok.

Nu jeg har dig på "linien": Hvordan kan jeg pakke alle mine jsp filer i et "dir"? hvis jeg laver en:
jar cvf minefiler.war *.jsp
og deployer får jeg en fejl der siger noget vedr. application.xml
Avatar billede arne_v Ekspert
18. januar 2003 - 23:19 #11
Jeg har også selv alt til en EJB JAR i den samme pakke !

:-)
Avatar billede arne_v Ekspert
18. januar 2003 - 23:22 #12
En war-fil skal typisk have strukturen:

Page1.jsp
Page2.jsp
WEB-INF/web.xml
WEB-INF/classes/myservlets/Servlet1.class
WEB-INF/classes/myservlets/Servlet2.class
WEB-INF/lib/utilities.jar
Avatar billede arne_v Ekspert
18. januar 2003 - 23:23 #13
application.xml hører hjemme i en .ear-fil, som har struktur:

META-INF/application.xml
min-ejb.jar
min.war
Avatar billede conrad Nybegynder
18. januar 2003 - 23:29 #14
ok jeg siger mange tak for din hjælp arne. Men vender jo nok stærkt tilbage i løbet af ugen :)
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