2010-08-18 12 views
5

Ich entwickle j2ee App auf Glassfish v3, die remote aufrufen EJB auf jboss 5 App Server bereitgestellt. Damit dies funktioniert, muss meine App jboss client jars im Klassenpfad haben. Ich habe es geschafft, indem ich Client-JAR-Dateien mit meiner Anwendung paketiert habe, aber das kostet ungefähr 10 MB, so dass das Hochladen der App zum Problem wird.glassfish v3 classpath Einstellungen

Wie kann ich diese Gläser woanders hinstellen, damit gf sie aufhebt, also muss ich sie nicht in meiner APP halten?

Antwort

1

Sie könnten sie bei Bedarf in den Klassenpfad des Servers einfügen. Gehe zum lib-Verzeichnis der Domain.

+0

Kann ich sie in ein anderes Verzeichnis und dann sagen, gf, um dort hinein zu schauen? – Marko

1

In der domain.xml Ihrer Glassfish-Domain können Sie das classpath-suffix-Attribut des java-config-Tags verwenden, um auf Orte zu verweisen, die Teil des Klassenpfads von Glassfish für diese bestimmte Domäne sein sollten.

0

Option 1: Sie können dies während der GF3-Bereitstellung mithilfe der Option Bibliotheken tun. Dies ist, was GF3 Bildschirm bereitstellen sagt.

Eine durch Kommas getrennte Liste von Bibliotheks-JAR-Dateien. Geben Sie die Bibliothek JAR Dateien nach ihren relativen oder absoluten Pfaden an. Geben Sie die relativen Pfade relativ zu instance-root/lib/applibs an. Die Bibliotheken stehen zur Verfügung für die Anwendung in der angegebenen Reihenfolge.

Wenn Sie die Befehlszeile für die Bereitstellung verwenden, verwenden Sie die Option --libraries mit dem Befehl asadmin.

Dies ist möglicherweise nicht die beste Option, da Sie jedes Mal, wenn eine Bereitstellung durchgeführt wird, darauf achten müssen. Im Falle einer erneuten Bereitstellung sollte diese Einstellung jedoch beibehalten werden.

Option 2: Fügen Sie sie in das Glassfish-Verzeichnis domainname/lib ein. Es wird automatisch aufgenommen und steht nach dem Neustart für alle Ihre Apps in derselben Domain zur Verfügung.

+0

Kann jemand einen Link angeben, woher diese Informationen stammen? Ich würde gerne mehr lesen. Kann ich beispielsweise -libraries verwenden, um auf ein Verzeichnis statt auf ein jar zu verweisen? –

1

Für Jar's ist das in Ordnung, aber für Property-Dateien ist es etwas anderes. Es ist in der Regel schwieriger, wenn Sie sie nicht in WAR einfügen (was bedeutet, dass Sie sie ohne eine vollständige Neueinrichtung nicht aktualisieren können).

Ich versuchte, die xxx.properties in der Config-Ordner & Anpassung der folgenden domain.xml Linie

<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> 

mit my_value nehmen folgende Werte zu setzen:

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

Das gleiche mit dem Klassenpfad-Suffix zu versuchen, half auch nicht.

Anfordern des Web-App, die Classpath mit der folgenden Zeile angezeigt werden:

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

Zeigte, dass die Werte abgeholt wurden ... aber die Eigenschaft-Datei war nie von der Classloader zugänglich.getResourceAsInputStream()