2013-04-25 31 views
5

Niedawno przeszliśmy na Glassfish 3.1.2.2 i mamy kilka aplikacji internetowych zapakowanych jako pliki wojny. Czasami wymagany kontekst-root dla tych aplikacji różni się od nazwy pliku.Korzystanie z kontekstowego katalogu głównego z glassfish-web.xml w GlassFish 3

Powrót kiedy użyliśmy Weblogic osiągnęliśmy to, oświadczając kontekstowe korzenie w weblogic.xml jak ten

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

Zauważyliśmy, że ten sam Tag istnieje w GlassFish-web.xml. Ale bez względu na to, co tutaj zdefiniujemy, serwer zawsze określa nazwę pliku jako kontekst-root.

Teraz znajdujemy opcję --contextroot w narzędziu asadmin, która pozwoli nam nadpisać nazwę pliku podczas wdrażania czasu, ale wolimy zdefiniować go bezpośrednio w samym archiwum, aby każdy, kto go wdroży, Koniec nie będzie musiał znać żądanego contex-root.

Czy jest jakiś sposób, aby to osiągnąć?

Odpowiedz

4

Normalnie to powinno działać z glassfish-web.xml wygląda tak:

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

Ale tutaj to wygląda jak trzeba plik o nazwie sun-web.xml dla swojego zadania.

Oto przykład:

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

To dziwne (i nieco żenujące) mieliśmy że tag set (chociaż w GlassFish-web.xml ponieważ plik został przemianowany w GF 3.1), ale nie zauważając, że zagłuszył go w naszym maven config gdzie nazwa pliku została wyraźnie przeszedł jako kontekst-root, przesłania definicję w pliku glassfish-web.xml. Jesteś oczywiście poprawny :) – Markus

+1

To nie zadziałało dla mnie z glassfish 3.1.2.2 używając wdrożenia java ee wojny, nawet jeśli skonfigurowałem zarówno glassfish-web.xml, jak i sun-web.xml. Tylko parametr asadmin wdrożyć --contextroot =/pomógł. Ale nie mogę się doczekać, aby znaleźć odpowiednią konfigurację dla tego tematu. –

+0

Zrobiłem trochę więcej eksperymentów i ostatecznie rozwiązaniem było zmodyfikowanie tylko glassfish-web.xml. Jeśli dodaję parametr kontekstowego katalogu głównego tylko do pliku glassfish-web.xml, a nie do pliku sun-web.xml, wynik był oczekiwany. –

10

W GlassFish GlassFish 3 i 4, konfiguracja aplikacji sieciowej jest wykonane poprzez glassfish-web.xml. W twoim przypadku pożądany plik konfiguracyjny będzie wyglądać następująco:

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

można znaleźć dalsze szczegóły w dziale Wdrożenie serwera GlassFish deskryptorów plików z Oracle GlassFish Server Application Deployment Guide. Wersję online tego dokumentu można znaleźć pod adresem http://docs.oracle.com/cd/E18930_01/html/821-2417/.

+2

Tak, miałem podobny problem. 'Sun-web.xml' nie ma wpływu na kontekstowy katalog główny. Zmieniłem, aby użyć 'glassfish-web.xml'. To działa. – smwikipedia