Creare una web application che comunichi via JCR API con Alf

cancel
Showing results for 
Search instead for 
Did you mean: 
felix1988
Member II

Creare una web application che comunichi via JCR API con Alf

salve ,

Il mio problema riguarda la creazione di una web application che possa interfacciarsi al repository di alfresco via JCR API .
Ho già scaricato l' SDK importandolo in eclipse .
Poi ho creato una web application e inserito il codice di uno degli esempi con JCR nella classe che mi fa da controller.
L'applicazione viene deployata senza errori e parte.
Lo stesso succede anche se creo un .war e lo deployo direttamente su tomcat senza passare per Eclipse.
Ma purtroppo non riesco a dargli il path del file application-context presente su alfresco sotto tomcat.
E comunque anche se carico tutte le librerie ricevo sempre errori da Tomcat.


Qualcuno sa aiutarmi??
Mi potete dare indicazioni su come creare una webapp che comunichi con il repository di alfresco???
6 Replies
openpj
Moderator
Moderator

Re: Creare una web application che comunichi via JCR API con Alf

In questo modo stai praticamente embeddando Alfresco nella tua applicazione, non stai comunicando da remoto con un repository esistente.

L'approccio tipicamente suggerito è quello di lasciare il prodotto as-is installato in una macchina remota rispetto alla tua applicazione e poi utilizzare CMIS oppure WebScripts per interfacciarsi da remoto.

Quali sono i tuoi requisiti? Vuoi davvero embeddare il repository all'interno della tua applicazione?
Potresti descrivere lo scenario di utilizzo?
mparrella
Member II

Re: Creare una web application che comunichi via JCR API con Alf

Salve ragazzi. Approfitto di questo post per chiarire un pò le idee. E' da pochi giorni che mi sono inserito nel mondo di Alfresco. Ho importato il progetto sotto eclipse, compilato e deployato direttamente sotto Tomcat. Configurato tutto il necessario e startato con successo. Ho scritto e testato in pochi minuti la mia prima dashlet. Il mio prossimo step è quello di integrare delle mie funzionalità scritte in java, sia tramite web services che jar e farle comunicare con il web client.

ES: Creare un modulo custom per la ricerca di particolari documenti, inviare l'action alla mia libreria e restituire un risultato corretto. 
Ho letto diverse metodologia di integrazione ma non riesco ad avere le idee chiare su quale sia la strada migliore da percorrere.
Sapreste indicarmi il giro corretto?

Grazie in anticipo
davidciamberlan
Alfresco Employee

Re: Creare una web application che comunichi via JCR API con Alf

Ciao,

non è semplice rispondere in modo sintetico alla tua domanda, perchè alfresco offre moltissime opportunità di personalizzazione (tieni conto che potresti addirittura andarti a modificare il codice nativo -che è opensource- e ricompilarti la tua versione personale di alfresco!).

provo a darti qualche dritta, sperando ti sia utile.

Innanzitutto, se sei alle prime armi, prima di buttarti a capo fitto nella programmazione secondo me dovresti imparare bene l'architettura di Alfresco, come funziona il suo repository, i permessi e le operazioni che puoi compiere con la sola interfaccia grafica.
Alfresco infatti permette una ampia personalizzazione anche senza ricorrere alla programmazione: action, rules, workflow,…

Poi imparerei come si costruisce un content model personalizzato.

Infine passerei alla programmazione.
Riguardo questa provo a riassumerti brevemente (tieni conto che le distinzioni che farò sono più teoriche che pratiche, in quanto le varie aree tendono a confondersi spesso):

Innanzitutto cerca di capire di volta in volta se devi estendere le funzionalità di Alfresco (quindi se vuoi esporre delle nuove funzioni che non ci sono nativamente) oppure se vuoi sfruttare le api esistenti per interfacciarti con esso e magari integrarlo con dei software esterni…

Nel primo caso puoi sviluppare dei webscript personalizzati oppure, a seconda dei casi, delle custom action o dei behaviour.
Puoi usare javascript oppure java, a seconda di quale linguaggio padroneggi meglio (ma il java tende ad essere più macchinoso in molte situazioni).

Nel secondo caso invece puoi sfruttare i vari protocolli messi a disposizione da Alfresco per interrogare e manipolare il repository.
I più utilizzati attualmente sono REST e CMIS (Evita SOAP se possibile).

Spesso può accadere che tu debba fare entrambe le cose: scrivere un webscript per esporre una nuova funzione e poi sfruttarla con un client (Rest ad esempio).


Sicuramente ho dimenticato di menzionare qualcosa… ma spero che possa servirti come base di partenza.

mparrella
Member II

Re: Creare una web application che comunichi via JCR API con Alf

Ciao David
Per prima cosa grazie mille per il tempo dedicatomi.
Ho scelto di Buildare e deployare Alfresco da Eclipse proprio per averne pieno controllo ed eventualmente modificare il codice navito ( anche se non credo di averne bisogno ).
Seguirò il tuo consiglio di capire meglio l'architettura, repository ecc…

La cosa certa è che dovrò integrare nuove funzionalità sia con webscript che manipolare il repository. Ho sviluppato un webservices in java ma il realtà potrei non esporre il servizio ed integrare solo il jar.

Fino ad ora le mie fonte sono state il wiki, il doc e http://ecmarchitect.com/alfresco-developer-series.

sto visitando in questo momento il blog http://sonosolobit.it/blog/category/alfresco/ (credo sia il tuo).
Nel caso mi consigli qualche risorsa che non sia troppo dispersiva?

Grazie in Anticipo
Manuel
davidciamberlan
Alfresco Employee

Re: Creare una web application che comunichi via JCR API con Alf

Ciao,

resisti alla tentazione di modificare il codice nativo!!! E' una cosa da evitare assolutamente per tanti buoni motivi.
Concentrati invece sull'estendere e integrare le funzionalità esistenti.
Quando avrai un po' più di esperienza saprai anche come sovrascrivere alcune parti del codice senza modificare quello preesistente.

La comprensione dell'architettura è necessaria perchè prima di poter interagire con un software bisogna conoscere come funziona.

Le fonti on-line che citi sono ottime e sono probabilmente quelle che tutti gli utilizzatori di alfresco utilizzano (tranne il mio blog che è per ora solo una goccia nel mare Smiley Happy ).

Posso consigliarti qualche libro.
In questa pagina c'è un elenco più esaustivo, tra i quali ti segnalo:
<ul>
<li>Alfresco developer guide (Jeff Potts) che sebbene datato è ancora molto valido per gli aspetti legati alla programmazione.</li>
<li>Alfresco 4 Enterprise Content Management Implementation (AA.VV.) Appena aggiornato e utile per conoscere Alfresco più ad alto livello.</li>
<li>Alfresco 3 Web Services (Piergiorgio Lucidi, Ugo Cei) per la parte dei webservice.</li>
<li>Alfresco Share (AA.VV.) per la parte di frontend con share.
</ul>
mparrella
Member II

Re: Creare una web application che comunichi via JCR API con Alf

si, effettivamente non credo di avere l'esigenza di modificare il codice nativo :-)
il tuo blog è molto interessante per chiarire alcuni aspetti

Inizialmente ho fatto l'errore di voler sviluppare subito un modulo conoscendo solo le funzionalità.
Credevo fosse cosi semplice come sviluppare una dashlet, magari lo sarà ugualmente :-D

Ora sto procedendo con un approfondimento dell'architettura.

Per quanto riguarda i linguaggi di programmazione (sia web presentation che core business) sono già abbastanza ferrato. Mi servirebbe solo poter creare il giro completo di una funzionalità anche banale partendo dalla pagina web (credo tramite dashlet oppure jsp personalizzata), interazione con una classe java,JAR o servizio,  return e visualizzazione del risultato su pagina web. Un pò il giro che si fa normalmente per una web application ma questa volta integrarla con Alfresco share.

Seguirò la tua linea guida cercando di focalizzarmi principalmente sull'obiettivo predetto.

Grazie ancora per la tua risposta
Credo che ci risentiremo per qualche altro chiarimento :-)

Manuel