2010-08-18 27 views
5

Sto sviluppando l'app j2ee su glassfish v3 che richiamerà EJB da remoto sul server delle app jboss 5. Perché funzioni, la mia app deve avere jboss client jars nel percorso della classe. Sono riuscito a farlo confezionando i file jar del client con la mia applicazione, ma questo richiede una dimensione di circa 10mb, quindi caricare l'app diventa un problema.glassfish v3 classpath settings

Come posso mettere questi vasi altrove in modo che GF li preleva quindi non ho bisogno di tenerli nella mia app?

risposta

1

Se necessario, è possibile inserirli nel classpath del server. Vai alla directory lib del dominio.

+0

Posso inserirli in qualche altro dir e quindi dire a gf di guardare lì? – Marko

1

Nel dominio domain.xml del dominio Glassfish è possibile utilizzare l'attributo suffisso del percorso di classe del tag java-config in modo che punti ai percorsi che dovrebbero far parte del percorso classe di Glassfish per quel particolare dominio.

0

Opzione 1: È possibile eseguire questa operazione durante la distribuzione di GF3 utilizzando l'opzione relativa alle librerie. Questo è ciò che dice lo schermo di distribuzione GF3.

Un elenco separato da virgole di file JAR di libreria. Specificare i file JAR della libreria in base ai loro percorsi relativi o assoluti. Specificare i percorsi relativi relativi a instance-root/lib/applibs. Le librerie vengono rese disponibili per l'applicazione nell'ordine specificato.

Nel caso si stia utilizzando la riga di comando per la distribuzione, utilizzare l'opzione --libraries con il comando asadmin.

Questa potrebbe non essere l'opzione migliore dal momento che è necessario prendersi cura di esso ogni volta che viene eseguita una distribuzione. Tuttavia, in caso di ridistribuzione questa impostazione dovrebbe essere mantenuta.

Opzione 2: inserirli nella directory domainfish/lib di Glassfish. Sarà raccolto automaticamente e disponibile per tutte le tue app nello stesso dominio dopo il riavvio.

+0

Qualcuno può fornire un link a dove questa informazione proviene? Mi piacerebbe leggere di più Ad esempio, posso usare le librerie per puntare a una directory anziché a un jar? –

1

Per jar questo è OK ma per i file di proprietà è qualcos'altro. Tende ad essere più difficile a meno che non li si metta in WAR (il che significa che non è possibile aggiornarli senza una ridistribuzione completa).

ho cercato di mettere le xxx.properties nella cartella config & adattando la seguente riga di domain.xml

<java-config debug-options="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9009" system-classpath="${com.sun.aas.instanceRoot}/MY_VALUE" classpath-suffix=""> 
     ... 
</java-config> 

con my_value prendendo i seguenti valori:

  1. config
  2. config/
  3. config/xxx.properties

Provare lo stesso con il suffisso classepath non è stato d'aiuto.

Richiesta la web-app per visualizzare il classpath con la seguente riga:

String path = System.getProperty("java.class.path"); 
LOG.info("Classpath is : '" + path + "'."); 

ha dimostrato che i valori sono stati raccolti ... ma la proprietà file non è mai stato accessibile dal ClassLoader.getResourceAsInputStream()