wtorek, 18 grudnia 2007

jak przeładować aplikację w jboss

Aby przeładować całą aplikację w Jboss bez restartowania serwera tak aby cały kontekst aplikacji został ponownie wczytany można wykorzystać konsolę JMX:
http://localhost:8080/jmx-console/
i wybrać z listy wskazanie MBean'a naszej aplikacji jako WebModule np.:

J2EEApplication=none,J2EEServer=none,j2eeType=WebModule,name=//localhost/moja_aplikacja

przechodzimy na stronę MBean i wywołujemy jego metodę:
void reload() za pomocą przycisku Invoke.

Taka akcja spowoduje ponowne załadowanie całej aplikacji łącznie z ponownym wczytaniem wszystkich bibliotek jar (i plików class).
W przypadku gdy zmienia się tylko konfiguracja aplikacji - wystarczy edytować i zapisać plik web.xml.

Na stronie: http://www.theserverside.com/discussions/thread.tss?thread_id=40272 jest informacja jak zautomatyzować przeładowanie aplikacji z wykorzystaniem narzędzia ant.

środa, 5 grudnia 2007

kopiowanie plików wynikowych jar, war, ear z maven

Jakiś czas temu wdrożyliśmy w firmie system ciągłej intergracji Continuum. Jedym z projektów obsługiwanych przez system był web service, który pracuje wewnątrz serwera aplikacji. Jako że moduł ten od początku był budowany z wykorzystaniem maven2 nie było problemu z podpięciem go do Continuum, natomiast brakowało nam jednego: aby po zbudowaniu systemu maven skopiował pakiet ear do serwera aplikacji (wdrożył go).
Zrobiliśmy to z wykorzystaniem pluginu antrun wykonującym operację systemu ant (tutaj operację copy):


<plugins>
...
<plugin>
<artifactid>maven-antrun-plugin</artifactid>
<executions>
<execution>
<phase>install</phase>
<configuration>
<tasks>
<copy todir="c:/GCMP/jboss/server/gcmp/deploy">
<fileset dir="${basedir}/target">
<include name="**/*.ear">
</fileset>
</copy>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
...
</plugins>


plugin ten jest uruchamiany w fazie install, ale można w zależności od potrzeb wykonywać go w innych fazach obsługi projektu maven.