CMIS e Java8

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

CMIS e Java8

Jump to solution
Ciao a tutti,

vi disturbo nuovamente per chiedervi se vi è capitato che le performance della creazione della sessione in Alfresco con CMIS si siano notevolmente rallentate con l'installazione di Java8.


HashMap<String, String> params = new HashMap<String, String>();
      params.put(SessionParameter.ATOMPUB_URL, "http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.0/atom");
      params.put(SessionParameter.USER, user);//utente admin
      params.put(SessionParameter.PASSWORD, password);//psw admin
      params.put(SessionParameter.BINDING_TYPE, BindingType.ATOMPUB.value());
      params.put(SessionParameter.OBJECT_FACTORY_CLASS,"org.alfresco.cmis.client.impl.AlfrescoObjectFactoryImpl");
      
      try
      {
         SessionFactory factory = SessionFactoryImpl.newInstance();
         setSessionCMIS(factory.getRepositories(params).get(0).createSession());
      }
      catch (Exception e)
      {
         logger.error("Errore nella createSessionCMIS: " + e.hashCode() + ' ' + e.toString());
      }


Con Java7 quando lancio l'upload non ho problemi circa 2 secondi
Con Java8 140 secondi!
In debug non ho problemi.

A voi è mai capitato?
1 Solution

Accepted Solutions
blade
Active Member II

Re: CMIS e Java8

Jump to solution
Ho capito il problema della lentezza di connessione.

Il mio progetto aveva i riferimenti ai jar di cmis vecchia versione (0.7.0) aggiornandoli alla nuova versione (0.14.0) e aggiornando le varie dipendenze alle nuove release i tempi di connessione sono ritornati quelli normali.

View solution in original post

9 Replies
openpj
Moderator
Moderator

Re: CMIS e Java8

Jump to solution
Ma intendi dire JDK?
Parli della runtime del server di Alfresco, giusto?
Che versione di Alfresco stai usando?
blade
Active Member II

Re: CMIS e Java8

Jump to solution
Ciao Piergiorgio

Sì sto parlando di JDK e del runtime server di Alfresco.
Sto usando la versione 5.0 di Alfresco.

openpj
Moderator
Moderator

Re: CMIS e Java8

Jump to solution
L'environment che usi quale è? Linux o Windows?
blade
Active Member II

Re: CMIS e Java8

Jump to solution
Scusa non ho scritto i dettagli.

Alfresco 5.0.d con jre 1.8.0_31 SO Ubuntu
(ma anche la versione 4.2.f con jre 1.7.0)
Windows è il SO dal quale viene fatta la richiesta di upload
Jdk e jre 8

Sicuramente sbaglio io a impostare qualcosa nel mio progetto Java.

In debug da eclipse la createSession() non ho problemi, in esecuzione è lenta
davidciamberlan
Alfresco Employee

Re: CMIS e Java8

Jump to solution
Ciao,

visto che hai alfresco 5, prova ad usare la versione 1.1 di cmis (basta cambiare il valore nell'url).

Inoltre per il binding puoi provare ad usare Browser invece di Atompub (userai json in luogo di xml per lo scambio dei dati).

blade
Active Member II

Re: CMIS e Java8

Jump to solution
Grazie David per la risposta, ma non funziona: mi dà errore

Errore nella createSessionCMIS: 2024542466 org.apache.chemistry.opencmis.commons.exceptions.CmisConnectionException: Parsing exception!


HashMap<String, String> params = new HashMap<String, String>();
      params.put(SessionParameter.ATOMPUB_URL,"http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.1/atom");
      params.put(SessionParameter.BROWSER_URL,"http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.1/atom");
      params.put(SessionParameter.USER, user);
      params.put(SessionParameter.PASSWORD, password);
      params.put(SessionParameter.BINDING_TYPE, BindingType.BROWSER.value());
      //params.put(SessionParameter.OBJECT_FACTORY_CLASS,"org.alfresco.cmis.client.impl.AlfrescoObjectFactoryImpl");
      
      try
      {
         SessionFactory factory = SessionFactoryImpl.newInstance();
         setSessionCMIS(factory.getRepositories(params).get(0).createSession());
      }
      catch (Exception e)
      {
         logger.error("Errore nella createSessionCMIS: " + e.hashCode() + ' ' + e.toString());
      }



ho provato anche con "http://95.110.234.12:8080/alfresco/api/-default-/public/cmis/versions/1.1/browser" e la createSession avviene correttamente e velocemente, ma al momento di fare l'upload mi dà un altro errore
"org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException: Property 'cm:title' doesn't exist!".
Se lo imposto mi dà lo stesso problema
davidciamberlan
Alfresco Employee

Re: CMIS e Java8

Jump to solution
Ciao,

se setti il binding a "browser" devi cambiare allo stesso modo anche l'url (alfresco/api/-default-/public/cmis/versions/1.1/browser).

Per quanto riguarda l'errore di upload: la property cm:title è nell'aspect cm:titled che devi aggiungere al tuo oggetto prima di valorizzare la property.
blade
Active Member II

Re: CMIS e Java8

Jump to solution
Ho provato a fare quanto mi hai segnalato, ma il problema rimane.
La cosa che non capisco è che mi dà errore quando richiamo il getObjectPath().


AlfrescoFolder destinationPath = (AlfrescoFolder) getSessionCMIS().getObjectByPath("/Sites/demo/documentLibrary/Qualità 18001/Istruzioni Operative/Documenti in redazione");

Volendo posso anche non valorizzare il cm:title, ma l'errore rimane dicendo
<b>org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException: Property 'cm:title' doesn't exist!</b>

La createSession è impostata con il binding a "Browser"


HashMap<String, String> params = new HashMap<String, String>();
      //params.put(SessionParameter.ATOMPUB_URL, "http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.1/browser");
      params.put(SessionParameter.BROWSER_URL,"http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.1/browser");
      params.put(SessionParameter.USER, user);
      params.put(SessionParameter.PASSWORD, password);
      params.put(SessionParameter.BINDING_TYPE, BindingType.BROWSER.value());
      //params.put(SessionParameter.OBJECT_FACTORY_CLASS,"org.alfresco.cmis.client.impl.AlfrescoObjectFactoryImpl");
      
      try
      {
         SessionFactory factory = SessionFactoryImpl.newInstance();
         setSessionCMIS(factory.getRepositories(params).get(0).createSession());
      }
      catch (Exception e)
      {
         logger.error("Errore nella createSessionCMIS: " + e.hashCode() + ' ' + e.toString());
      }


Imposto il cm:title con l'aspect

HashMap<String, Object> metadati= new HashMap<>();
      
      //Metadati per configurazione tipologia documento
      metadati.put(PropertyIds.OBJECT_TYPE_ID,"D:fe:offerta,P:cm:titled" );
      metadati.put(PropertyIds.NAME,fileName);
      metadati.put("cm:title", "prova");      
      metadati.put("fe:organizzazione","Demo");
      metadati.put("fe:numDoc",60);   


Scusa, ma non ne vengo a capo.

Ad ogni modo non capisco perché la versione del Java influisca sulla velocità di connessione.
blade
Active Member II

Re: CMIS e Java8

Jump to solution
Ho capito il problema della lentezza di connessione.

Il mio progetto aveva i riferimenti ai jar di cmis vecchia versione (0.7.0) aggiornandoli alla nuova versione (0.14.0) e aggiornando le varie dipendenze alle nuove release i tempi di connessione sono ritornati quelli normali.