JBoss

Z Wiki - coigdzie.pl
Przejdź do nawigacji Przejdź do wyszukiwania

System do zarządzania zbieranymi przez nas danymi adminka jest uruchamiana za pomocą serwera JBoss.

Aktualnie używamy serwera JBOSS EAP 6.4.

Modyfikacje domyślnej konfiguracji

Domyślna konfiguracja powinna zostać zmodyfikowana poprzez modyfikacje pliku standalone/configuration/standalone.xml.

Zależy nam na usunięciu aplikacji dostępnej w context root-cie /, tzw. Welcome application. Wyłączenie aplikacji odbywa się przez modyfikację głównego serwera wirtualnego,

tzn. ustawienie wartości false dla parametru enable-welcome-root.

Kolejną modyfikacją jest wyłączenie konsoli zarządczej dostępnej przez HTTP. Odbywa się to przez edycję elementu

<management-interfaces><http-interface security-realm="ManagementRealm" console-enabled="false"><socket-binding http="management-http"/></http-interface></management-interfaces>

Następną istotną modyfikacją jest zdefiniowanie sterowników dla bazy danych PostgreSQL

<driver name="postgresql" module="org.postgresql"><xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class></driver>

oraz skonfigurowanie bazy danych. Odbywa się to poprzez dodanie węzła datasource do elementu datasources:

<datasource jta="false" jndi-name="java:/imprezownikAdminkaDS" pool-name="imprezownikAdminkaDS" enabled="true" use-java-context="true" use-ccm="false">
    <connection-url>jdbc:postgresql://HOST:5432/DB_NAME</connection-url>
    <driver-class>org.postgresql.Driver</driver-class>
    <driver>postgresql</driver>
    <pool>
        <min-pool-size>5</min-pool-size>
        <max-pool-size>20</max-pool-size>
    </pool>
    <security>
        <user-name>USER</user-name>
        <password>PASSWORD</password>
    </security>
</datasource>

Ostatnią modyfikacją niezbędną do prawidłowego działania serwera jest dodanie hostów wirtualnych:

<virtual-server name="virthost"><alias name="m.coigdzie.pl"/></virtual-server>

<virtual-server name="virthost2"><alias name="bazadanych.coigdzie.pl"/></virtual-server>

W celu optymalizacji przesyłu danych między serwerem a aplikacją webową należy dodać poniższe parametry do konfiguracji:

<system-properties>
    <property name="org.apache.coyote.http11.Http11Protocol.COMPRESSION" value="on"/>
    <property name="org.apache.coyote.http11.Http11Protocol.COMPRESSION_MIME_TYPES" value="text/javascript,text/css,text/html,application/x-amf"/>
</system-properties>

Plik zmiennych systemowych

Zmienne systemowe aplikacji uruchomionych na serwerze zdefiniowane są w pliku.

Posiadamy dwie aplikacje: adminkę oraz mobilną przeglądarkę imprez.

Konfiguracja mobilnej przeglądarki imprez

  • Definicja adresu do wyszukiwania poprzez api, gdzie parametrami są miejscowość, słowa kluczowe oraz data startu i data końca imprezy

pl.ifusion.imprezownik.lajt.views.CigApiSearch=http://api.coigdzie.pl/happenings/search?token=qwe&locality={0}&keyword={1}&startDate={2}&endDate={3}&limit=20

  • Definicja adresu do pobierania imprezy poprzez api, gdzie parametrem jest id imprezy

pl.ifusion.imprezownik.lajt.views.CigApiDetail=http://api.coigdzie.pl/happenings/details?token=qwe&happeningId={0}

Konfiguracja adminki

  • Adres pod którym znajdują się zaimportowane obrazki

pl.com.bms.imprezownik.webapp.FileUploadServlet.GfxAddress=http://gfx.coigdzie.pl

  • Katalog do którego mają być pobierane obrazki

pl.com.bms.imprezownik.webapp.FileUploadServlet.LocalPath=/home/gfx/

  • Katalogi w których znajdują się importowane pliki

ObjectImporterServiceImpl.inputDirectory=/home/imports/object/input/

ObjectImporterServiceImpl.outputDirectory=/home/imports/object/output/

ObjectImporterServiceImpl.errorDirectory=/home/imports/object/errors/

gdzie Object może przyjmować następujące wartości: Album, Book, Game, Happening, MovieShow lub Task.

Wdrożenie

Wdrożenie może nastąpić bezpośrednio podczas budowania projektu lub poprzez program konsolowy jboss-cli.sh

Jeśli wdrażamy zmiany na serwerze zdalnym, zostaniemy zapytani o dane logowanie dla użytkownika, którego powinniśmy wcześniej utworzyć na serwerze zdalnym.

Wdrożenie przy budowaniu

By wdrożyć nową wersję przy budowaniu projektu należy dodać plugin JBoss'a do pliku adminka/src/j2ee/web/pom.xml, gdzie parametr HOST powinien posiadać nazwę hosta na którym chcemy wdrożyć nową wersję.

<plugin>
     <groupId>org.jboss.as.plugins</groupId>
     <artifactId>jboss-as-maven-plugin</artifactId>
     <version>7.5.Final</version>
     <configuration>
       <hostname>HOST</hostname>
       <port>9999</port>
     </configuration>
     <executions>
       <execution>
         <phase>install</phase>
         <goals>
           <goal>deploy</goal>
         </goals>
       </execution>
     </executions>
   </plugin>
</plugins>

Wdrożenie za pomocą jboss-cli.sh

Program znajduje się w katalogu jboss-*/bin/

Należy uruchomić program z parametrami

jboss-eap-*/bin/jboss-cli.sh --connect controller=HOST:9999 --user=USER --password=PASSWORD --command='undeploy imprezownikAdminka.war'

jboss-eap-*/bin/jboss-cli.sh --connect controller=HOST:9999 --user=USER --password=PASSWORD --command='deploy DIRECTORY/imprezownikAdminka.war'

lub jeśli wdrożenie odbywa się lokalnie:

jboss-eap-*/bin/jboss-cli.sh --connect --command='undeploy imprezownikAdminka.war'

jboss-eap-*/bin/jboss-cli.sh --connect --command='deploy DIRECTORY/imprezownikAdminka.war'

Utworzenie nowego użytkownika

W celu utworzenia nowego użytkownika należy użyć programu add-user.sh znajdującego się w katalogu jboss-*/bin/.