2013-04-25 11 views
5

Wir haben kürzlich zu Glassfish 3.1.2.2 gewechselt und mehrere Web-Applikationen als WAR-Dateien gepackt. Manchmal weicht das gewünschte Kontextstammverzeichnis für diese Anwendungen vom Dateinamen ab.Verwendung des Context-Roots von glassfish-web.xml in GlassFish 3

Damals, als wir Weblogic hat wir erreichen dies durch den Kontext-root in den weblogic.xml ähnlich Wir bemerkten

<context-root>path/to/our/App</context-root> 

erklärt, dass der gleiche Tag gibt es in der Glassfish-web.xml. Aber egal, was wir dort definieren, der Server bestimmt immer den Dateinamen als Kontextstammverzeichnis.

Jetzt finden wir die Option --contextroot im asadmin-Dienstprogramm, die uns erlauben würde, den Dateinamen zum Zeitpunkt der Bereitstellung zu überschreiben, aber wir würden es lieber direkt im Archiv selbst definieren, so dass jeder es in der bereitstellen wird end muss den gewünschten contex-root nicht kennen.

Gibt es eine Möglichkeit, dies zu erreichen?

Antwort

4

Normalerweise sollte diese Arbeit mit einem glassfish-web.xml wie folgt aussehen:

<!DOCTYPE glassfish-web-app PUBLIC 
    "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" 
    "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd"> 
<glassfish-web-app> 
    <context-root>/path/to/App</context-root> 
</glassfish-web-app> 

Aber hier sieht es aus wie Sie eine Datei benötigen sun-web.xml für Ihre Aufgabe genannt. Hier

ist ein Beispiel:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE sun-web-app PUBLIC 
    "-//Sun Microsystems, Inc.//DTD GlassFish Application Server 3.0 Servlet 3.0//EN" 
    "http://www.sun.com/software/appserver/dtds/sun-web-app_3_0-0.dtd"> 
<sun-web-app error-url=""> 
    <context-root>/path/to/our/App</context-root> 
</sun-web-app> 
+0

Das ist seltsam (und etwas peinlich) wir hatten dieses Tag gesetzt (obwohl in glassfish-web.xml, da die Datei in GF 3.1 umbenannt wurde), aber ohne es zu bemerken übertrafen wir es in unserer Maven Config, wo der Dateiname explizit übergeben wurde Als context-root überschreiben Sie die Definition in der glassfish-web.xml. Du bist natürlich richtig :) – Markus

+1

Es hat bei mir nicht mit glassfish 3.1.2.2 geklappt, dass ich Java ee war, auch wenn ich sowohl die glassfish-web.xml als auch die sun-web.xml konfiguriert habe. Nur der Parameter asadmin deploy --contextroot =/half. Aber ich freue mich darauf, die richtige Konfiguration für dieses Thema zu finden. –

+0

Ich habe noch ein paar Experimente gemacht und die Lösung war, nur die glassfish-web.xml zu modifizieren. Wenn ich den context-root-Parameter nur der glassfish-web.xml und nicht der sun-web.xml hinzufüge, war das Ergebnis das erwartete. –

10

In Glassfish 3 und 4 Glassfish die Konfiguration einer Web-Anwendung wird über glassfish-web.xml getan. In Ihrem Fall würde die gewünschte Konfigurationsdatei wie folgt aussehen:

<!DOCTYPE glassfish-web-app PUBLIC 
    "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" 
    "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd"> 
<glassfish-web-app> 
    <context-root>/path/to/our/App</context-root> 
</glassfish-web-app> 

Sie weitere Details in Abschnitt Glassfish Server Deployment Descriptor Files von Oracle Glassfish Server Application Deployment Guide finden. Eine Online-Version dieses Dokuments finden Sie unter http://docs.oracle.com/cd/E18930_01/html/821-2417/.

+2

Ja, ich hatte ein ähnliches Problem. Die 'sun-web.xml' hat keine Auswirkungen auf den Kontextstamm. Ich änderte, um die 'glassfish-web.xml' zu verwenden. Es klappt. – smwikipedia