Do It The jAPS Way
Copyright © 2011 Tzente s.r.l.
Legal Notice
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the Appendix entitled "GNU Free Documentation License".
2011-03-03
| Revision History | ||
|---|---|---|
| Revision 1.2 | 2011-03-03 | MEM |
|
Update for jAPS 2.0 entando, version 2.2.0. Split index into chapters | ||
| Revision 1.1 | 2010-03-18 | MEM |
Revision for the release of jAPS 2.0.10 | ||
| Revision 1.0 | 2009-11-16 | GC |
First public release | ||
Abstract
Deploy di un applicazione basata su jAPS in JBoss AS.
Table of Contents
Table of Contents
Deployment di un applicazione basata su jAPS in JBoss AS.
Il documento si rivolge agli sviluppatori che devono deploiare un applicazione basata su jAPS 2.0 entando su JBoss Application Server.
Per ottenere il massimo vantaggio dal presente documento, è necessario avere una conoscenza base su: Java, Eclipse IDE, JBoss Application Server, PosgreSQL DBMS.
Ulteriori informazioni possono essere richieste attraverso la mailing list ufficiale Google Group "japs-platform".
Per mandare un messaggio ai membri della lista, invia una mail a <japs-platform@googlegroups.com>.
È inoltre possibile consultare la documentazione presente in:
Table of Contents
Il paragrafo seguente parla del deploy di un applicazione basata su jAPS su JBoss AS.
Scaricare il pacchetto del JBoss application server
http://www.jboss.org/jbossas/downloads/.
In particolare questa documentazione si riferisce alla versione 5.1.0.GA.
Scompattare l'archivio e spostare i file nella directory di installazione.
Per avere una corretta configurazione dell'application server è
necessario abilitare il trim white spaces
per eliminare i line-break in eccesso nelle JSP renderizzate.
Aprire il file <PATH_DI_INST>/jboss-5.1.0.GA/server/default/deployers/jbossweb.deployer/web.xml.
Inserire:
<init-param>
<param-name>trimSpaces</param-name>
<param-value>true</param-value>
</init-param>
fra i parametri di inizializzazione della servlet:
<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
.....
</servlet>
Oppure in alternativa nel web.xml della webapp inserire
nel blocco <jsp-config>
<!-- Trim With Space -->
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<trim-directive-whitespaces>true</trim-directive-whitespaces>
</jsp-property-group>
JBoss gestisce in maniera differente da Tomcat il file di contesto. Questo file viene utilizzato
di default in jAPS per la configurazione dei parametri "sistemistici". Per ovviare a questo problema
i parametri di configurazione vengono definiti nel file web.xml per il deploy in JBoss.
Aggiungere nel file web.xml dell'applicazione le seguenti definizioni (dopo
il blocco dei <servlet-mapping>).
Nell'esempio l'application server è installato in /opt/jboss-5.1.0.GA/
, la nostra webapp si chiama PortalExample e si sta utilizzando la configurazione di nome default
di JBoss. Si è inoltre scelto di utilizzare la directory data dell'istanza del server
scelta per i file della cache ed i file del motore di ricerca.
Personalizzare quindi i parametri in funzione della propria situazione in particolare per quanto riguarda il percorso del
server.
<env-entry>
<env-entry-name>logName</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>PortalExample</env-entry-value>
</env-entry>
<env-entry>
<env-entry-name>logFilePrefix</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>/opt/jboss-5.1.0.GA/server/default/log/PortalExample_log</env-entry-value>
</env-entry>
<env-entry>
<env-entry-name>logLevel</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>ALL</env-entry-value>
</env-entry>
<env-entry>
<env-entry-name>logFileSize</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>200000</env-entry-value>
</env-entry>
<env-entry>
<env-entry-name>logFilesCount</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>10</env-entry-value>
</env-entry>
<env-entry>
<env-entry-name>configVersion</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>production</env-entry-value>
</env-entry>
<env-entry>
<env-entry-name>applicationBaseURL</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>http://localhost:8080/PortalExample/</env-entry-value>
</env-entry>
<env-entry>
<env-entry-name>resourceRootURL</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>/PortalExample/resources/</env-entry-value>
</env-entry>
<env-entry>
<env-entry-name>protectedResourceRootURL</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>/PortalExample/protected/</env-entry-value>
</env-entry>
<env-entry>
<env-entry-name>resourceDiskRootFolder</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>/opt/jboss-5.1.0.GA/server/default/deploy/PortalExample.war/resources/</env-entry-value>
</env-entry>
<env-entry>
<env-entry-name>protectedResourceDiskRootFolder</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>/opt/jboss-5.1.0.GA/server/default/deploy/PortalExample.war/protected/</env-entry-value>
</env-entry>
<env-entry>
<env-entry-name>indexDiskRootFolder</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>/opt/jboss-5.1.0.GA/server/default/data/PortalExample/indexdir</env-entry-value>
</env-entry>
<env-entry>
<env-entry-name>cacheDiskRootFolder</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>/opt/jboss-5.1.0.GA/server/default/data/PortalExample/cache</env-entry-value>
</env-entry>
Definire i data-source come NomeDataSource-ds.xml in
<PATH_DI_INST>/jboss-5.1.0.GA/server/default/deploy/jdbc.
Creare la directory jdbc se non esiste (non è strettamente necessario e per avere ordine sul server).
Partendo dal template in <PATH_DI_INST>/jboss-5.1.0.GA/docs/examples/jca/postgres-ds.xml
Definire due file con la definizione delle data source richieste di default da jAPS
ed eventuali altre in uso alla particolare webapp.
Ad esempio per il database port abbiamo
nome file portDataSource-ds.xml
contenente:
<datasources>
<local-tx-datasource>
<jndi-name>portDataSource</jndi-name>
<connection-url>jdbc:postgresql://localhost:5432/PortalExamplePort</connection-url>
<driver-class>org.postgresql.Driver</driver-class>
<user-name>agile</user-name>
<password>agile</password>
<!-- sql to call when connection is created. Can be anything, select 1 is valid for PostgreSQL
<new-connection-sql>select 1</new-connection-sql>
-->
<!-- sql to call on an existing pooled connection when it is obtained from pool. Can be anything, select 1 is valid for PostgreSQL
<check-valid-connection-sql>select 1</check-valid-connection-sql>
-->
<!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
<metadata>
<type-mapping>PostgreSQL 7.3</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
Corregere ora il nome delle data sources nel file WEB-INF/conf/systemConfig.xml
in maniera coerente con i nomi delle datasources definite al passo precedente.
Ad esempio se le due datasource sono state definite con i nomi portDataSource
e con servDataSource le righe relative nel file risulteranno uguali a quelle riportate:
<jee:jndi-lookup id="portDataSource" jndi-name="java:portDataSource"/> <jee:jndi-lookup id="servDataSource" jndi-name="java:servDataSource"/>
Questo perchè JBoss non accetta la sintassi comp/env/jdbc/portDataSource.
Aggiungere il driver JDBC per Postgres, postgresql-8.3-603.jdbc4.jar,
in <PATH_DI_INST>/jboss-5.1.0.GA/server/default/lib
se la configurazione del server che si sta usando è quella di default.
Per fare il deploy comodamente è possibile utilizzare sfruttare i task di ANT
definiti nel build.xml del progetto jAPS 2.0 entando. Eseguire il task di nome
WAR build a questo punto si può comodamente sfruttare la cartella <NomeWebApp>
generata in <NomeProgetto>/build/ rinominarla in <NomeWebApp>.war per effettuarne il deploy
come webapp scompatata in <PATH_DI_INST>/jboss-5.1.0.GA/server/default/deploy
Table of Contents
Il seguente paragrafo introduce all'uso di JBoss AS per lo sviluppo di un applicazione basata su jAPS 2.0 entando sfruttando il dynamic web project di eclipse.
Dalla view Server definire un nuovo server: tasto destro, new , Server scegliere JBoss, JBoss v5.0 (Potrebbe essere necessario definire un nuovo server runtime), associare il progetto al server.
Per via dei tempi di avvio di JBoss potrebbe essere necessario aumentare il timeout per l'avvio. Fare doppio click sul server. Selezionare la voce timeout ed incrementare il valore della voce start, di default uguale a 50.
Seguire le istruzioni del paragrafo precedente per quanto riguarda la configurazione dei data source,
del driver JDBC, del trim white spaces e la definizione dei parametri
di configurazione nel file web.xml.
In particolare per quanto riguarda i parametri di configurazione del file web.xml
personalizzare i percorsi in modo da avere ad esempio i log in una posizione comoda.
Ora è possibile eseguire come Dynamic Web Project in eclipse la webapp: tasto destro sul progetto, Run As, Run on Server, selezionare il server JBoss precedentemente definito, cliccare su Finish. L'applicazione web verrà avviata e la sua homepage sarà visualizzata nel browser.
Table of Contents
