Domanda

Sono un nuovo arrivato a Java ee quindi forse questa è una domanda fittizia.Ma sto schierando una guerra e un barattolo contenente EJB in un pesce di pesce 3.1.server.La guerra ha un riferimento a uno dei EJB nel file JAR.È obbligatorio includere il vaso EJB nella directory lib del file di guerra al fine di rendere questo lavoro?Poiché sia la guerra che il barattolo funzionino sullo stesso server App, speravo che non avrei dovuto prendersi cura di queste dipendenze.Tuttavia, sto ottenendo un java.lang.NoClassDefFoundError quando riesco a distribuire la guerra se non includo il barattolo EJB (anche se il barattolo EJB è già distribuito sul server App).

È stato utile?

Soluzione

Uno dei capisaldi di Java EE è la nozione che diversi componenti possono essere eseguiti in contenitori che non condividono uno spazio dei nomi, anche se i componenti potrebbero essere in esecuzione nello stesso jvm.Se hai moduli che hanno bisogno di condividere uno spazio dei nomi, devono essere dotati di bundle in un orecchio (prima di Java EE 6) o combinato in una singola guerra (un caso speciale stabilito da Java EE 6 per applicazioni Web che necessitano di sfruttare EJBS).

Questo è un cambiamento significativo da ciò che la gente ha familiarità con lo sviluppo di Java SE "sanno".Per la maggior parte dei programmi Java SE, il contenitore è il processo JVM.

Quindi, la risposta alla tua domanda è: "No. Non è necessario inserire il barattolo EJB nella Directory LIB del file di guerra. È possibile creare un file ear che contenga entrambi gli archivi."

Questo può chiarire la situazione per te ...

 myEar.ear
   + myEJBs.jar
   + myWAR.war
   + lib
       + a-jar-that-has-classes-used-in-both-archives-above.jar
.

Altri suggerimenti

Hai provato a imballarti il file di guerra e vaso insieme in un file dell'orecchio?Il file EAR può avere una Directory LIF in cui è possibile effettuare i file JAR da caricare sul classPath FBO dell'Applicazione aziendale.

Questo dovrebbe risolvere il problema del tuo cardLoader.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top