Do It The jAPS Way
Copyright © 2010 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-02-24
| Revision History | ||
|---|---|---|
| Revision 1.2 | 2011-02-24 | MEM |
Revisione per il rilascio di jAPS 2.0 entando versione 2.2.0 | ||
| Revision 1.1 | 2010-02-17 | MEM |
|
Revisione per rilascio jAPS 2.0.10 | ||
| Revision 1.0 | 2009-10-30 | SP |
|
Prima versione pubblica | ||
Abstract
Lo scopo di questo documento è quello di fornire una descrizione completa della struttura del Plugin SOA-Content.
Table of Contents
List of Tables
Table of Contents
Lo scopo di questo documento è quello di fornire una descrizione
completa della struttura del Plugin SOA-Content.
Questo documento è destinato a chi intende conoscere le funzionalità del jAPS Plugin SOA-Content,
e sta prendendo in considerazione la eventuale integrazione in un Ambiente di Produzione già funzionante
o nel proprio Ambiente di Sviluppo (Progetto in IDE Eclipse).
Il documento è indirizzato sia a Sistemisti (responsabili di installazioni di Applicazioni su base jAPS 2.0 entando) che a Java Developers (con una conoscenza base del Framework jAPS 2.0 entando).
Per poter utilizzare efficacemente le informazioni contenute in questo documento, occorre un po' di esperienza su alcune tecnologie del web base: la piattaforma Java, gli strumenti di sviluppo Eclipse, il servlet container Apache Tomcat, il database PostgreSQL, e del Framework jAPS 2.0 entando. E' inoltre necessario aver letto il documento jAPS 2.0 - Plugin Pattern.
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 Plugin SOA-Content permette operazioni sui contenuti per mezzo di WebServices.
Nello specifico il plugin espone due metodi:
Un metodo che permette ad un client di aggiungere un contenuto all'interno del sistema
Un metodo che permette ad un client di richiedere un contenuto in base all'identificativo.
Table 2.1. Riassunto delle caratteristiche
| Codice | Nome | Tipo | Versione del Plugin | Versione di jAPS 2.0 entando |
|---|---|---|---|---|
| jpwscontent | SOA-Content | Modification | 1.2 | 2.2.0 - |
| jpwscontent | SOA-Content | Modification | 1.1 | 2.0.10 |
| jpwscontent | SOA-Content | Modification | 1.0 | 2.0.8 |
Il modulo fornisce l'infrastruttura server necessaria per le scambio dei contenuti con applicazioni terze di diverso tipo.
In particolare il plugin fornisce, attraverso l'interfaccia wsdl, due metodi in particolare: addContent e getContent.
Tramite questa funzionalità (realizzata attraverso l'esposizione del metodo addContent)
è possibile aggiungere nei contenuti del CMS di jAPS 2.0 entando, insieme a tutte le risorse ad esso correlate.
Per aggiungere un contenuto da remoto è sufficiente creare on oggetto WsContentEnvelope,
contenente il contenuto che si desidera aggiungere sotto forma di stringa xml.
Al termine dell'operazione il sistema restituisce un valore di ritorno.
Il contenuto verrà dirattamente inserito tra l'insieme dei contenuti pubblici.
Se il contenuto che si sta aggiungendo ha delle risorse referenziate, è necessario aggiungere
all'oggetto WsContentEnvelope le risorse sotto forma di array di oggetti WsResource.
Se il portale che riceve l'oggetto envelope contiene già un file con lo stesso nome o
una risorsa con lo stesso identificativo, il sistema provvederà ad assegnare un nuovo identificativo e/o rinominare
il file.
Tramite questa funzionalità (realizzata attraverso l'esposizione del metodo getContent)
è possibile richiedere un contenuto del CMS di jAPS 2.0 entando, insieme a tutte le eventuali risorse ad esso correlate.
Il sistema restituisce un oggetto WsContentEnvelope contente l'xml del contenuto
richiesto, e nel caso siano presenti delle risorse referenziate, valorizza opportunamente l'array
delle risorse sotto forma di oggetti WsResource.
Table of Contents
Il Plugin ha la caratteristica di Modification in quanto, in fase di installazione, necessita di una modifica
al Deployment Descriptor (il file web.xml) per la definizione di nuove servlet.
Il pacchetto del Plugin contiene l'insieme delle cartelle (cartelle doc ed src più il file Readme)
definite nel documento di descrizione generale del jAPSPlugin Pattern.
In particolare, la directory src è strutturata come di seguito descritto:
Directory
java. Contiene le sorgenti java complete e i test jUnit del Plugin.Directory
webapp. Contiene i files di configurazione di Spring, Axis e il file wsdl.
Da questo momento in poi ci si riferisce all'ambiente in produzione dove il plugin sta per essere
installato come mioportale.
Inoltre ci si riferisce al file compresso contenente tutti gli elementi del plugin come 'pacchetto'
infine 'sistema' è sempre riferito all'installazione del framework jAPS 2.0 entando e non
al sistema operativo su cui jAPS stesso viene eseguito.
Per eseguire l'installazione in una applicazione Web in produzione basata sulla versione di jAPS 2.0 entando dichiarata compatibile con il plugin, i passi da eseguire sono i seguenti:
Interrompere l'esecuzione del servlet container
Modificare il file web.xml, e inserire il listato sotto riportato subito dopo l'ultima dichiarazione dell'ultima
servlet<servlet> <display-name>Apache-Axis Servlet</display-name> <servlet-name>AxisServlet</servlet-name> <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/servlet/AxisServlet</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>*.jws</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> <servlet> <display-name>Axis Admin Servlet</display-name> <servlet-name>AdminServlet</servlet-name> <servlet-class>org.apache.axis.transport.http.AdminServlet</servlet-class> <load-on-startup>100</load-on-startup> </servlet> <servlet-mapping> <servlet-name>AdminServlet</servlet-name> <url-pattern>/servlet/AdminServlet</url-pattern> </servlet-mapping>Nel caso che nella directory
non sia presente un file di nomemioportale/WEB-INFserver-config.wsdd, copiare il file presente nella cartellasrc/webapp/WEB-INF/plugins/jpwscontentdel pacchetto dato in dotazione, sotto la directory. Nel caso che nella directorymioportale/WEB-INFsia già presente un file di nomemioportale/WEB-INFserver-config.wsdd, inserire opportunamente la definizione del servizio (elemento xml di nomens1:servicee attributoname="WsContentEndpoint"del filesrc/webapp/WEB-INF/plugins/jpwscontent/server-config.wsdddel pacchetto dato in dotazione) nel file server-config.wsdd presente.Copiare il contenuto della directory
src/webapp/WEB-INF/libdel pacchetto dato in dotazione, all'interno della directoryin produzione.mioportale/WEB-INF/lib/Copiare il contenuto della directory
src/webapp/WEB-INF/pluginsdel pacchetto dato in dotazione, all'interno della directoryin produzione. Creare la directory plugins se non è presente.mioportale/WEB-INF/plugins/Copiare il contenuto della directory
src/webapp/resources/pluginsdel pacchetto dato in dotazione, all'interno della directoryin produzione.mioportale/resources/plugins/A questo punto è possibile riavviare il servelet container.
Per eseguire l'installazione in un progetto Eclipse basato sulla versione di jAPS 2.0 entando dichiarata compatibile con il plugin, i passi da eseguire sono i seguenti:
Modificare il file web.xml, e inserire il listato sotto riportato.
<servlet> <display-name>Apache-Axis Servlet</display-name> <servlet-name>AxisServlet</servlet-name> <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/servlet/AxisServlet</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>*.jws</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> <servlet> <display-name>Axis Admin Servlet</display-name> <servlet-name>AdminServlet</servlet-name> <servlet-class>org.apache.axis.transport.http.AdminServlet</servlet-class> <load-on-startup>100</load-on-startup> </servlet> <servlet-mapping> <servlet-name>AdminServlet</servlet-name> <url-pattern>/servlet/AdminServlet</url-pattern> </servlet-mapping>
Nel caso che nella directory
non sia presente un file di nomemioprogetto/WebContent/WEB-INFserver-config.wsdd, copiare il file presente nella cartellasrc/webapp/WEB-INF/plugins/jpwscontentdel pacchetto dato in dotazione, sotto la directory. Nel caso che nella directorymioprogetto/WebContent/WEB-INFsia già presente un file di nomemioprogetto/WebContent/WEB-INFserver-config.wsdd, inserire opportunamente la definizione del servizio (elemento xml di nomens1:servicee attributoname="WsContentEndpoint"del filesrc/webapp/WEB-INF/plugins/jpwscontent/server-config.wsdddel pacchetto dato in dotazione) nel file server-config.wsdd presente.Copiare il contenuto della directory
src/webapp/WEB-INF/libdel pacchetto dato in dotazione, all'interno della directory, con l'esclusione del filemioprogetto/WebContent/WEB-INF/lib/jAPSPlugin-jpwscontent-1.1.jar.Assicurarsi dell'esistenza della directory
pluginsinsrc/webapp/WEB-INF/. In caso contrario crearla. Copiare il contenuto della directorysrc/webapp/WEB-INF/pluginsdel pacchetto dato in dotazione, all'interno della directory.mioprogetto/WebContent/WEB-INF/plugins/Copiare il contenuto della directory
src/webapp/resources/pluginsdel pacchetto dato in dotazione, all'interno della directory.mioprogetto/WebContent/resources/plugins/Copiare il contenuto della directory
src/java/main/comnella directorydel proprio progetto.mioprogetto/src/comCopiare il contenuto della directory
src/java/test/testnella directorydel proprio progetto.mioprogetto/src/test
Una volta eseguiti i passi sopra descritti, far partire il progetto da Eclipse e verificare la presenza della voce specifica voce di menù nell'area di amministrazione del progetto.
Per eseguire i test, è necessario lanciare una istanza di PortalExample, con il plugin installato, con settati i database di test.
Per lanciare PortalExample con i database di test aprire il file
PortalExample/WebContent/META-INF/context.xml
nelle risorse
jdbc/portDataSourceejdbc/servDataSourcecambiare la URL dei database puntati dai driver specificando il nome appropriato dei database di test (PortalExampletestPort and PortalExampletestServ nel caso di PortalExample).nello stesso file, cambiare il valore di
configVersionda 'production' a 'test'. <Environment name="configVersion" value="test" type="java.lang.String" override="false" />
Attenzione: è necessario ripulire manualmente il di test di PortalExample in quanto non è possibile effettuare la cancellazione tramite WebServices.
Table of Contents
