Probleme lors de l'utilisation du Webservice

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

Probleme lors de l'utilisation du Webservice

Bonjour,

Je découvre actuellement le WebService Alfresco/CMIS fourni par la version community-5.0-a afin de l'utiliser dans une future application.

J'ai réussi pour l'instant à récuperer les informations des mes Repository à l'aide de la méthode getRepositories fourni par RepositoryService.wsdl .

Ci-dessous, l'enveloppe SOAP envoyé :


<?xml version="1.0" encoding="utf-16"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <soap:Header>
      <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" soap:mustUnderstand="1">
         <wsu:Timestamp xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
            <wsu:Created>2014-07-10T14:28:36.972Z</wsu:Created>
            <wsu:Expires>2014-07-10T14:33:36.972Z</wsu:Expires>
         </wsu:Timestamp>
         <wsse:UsernameToken>
            <wsse:Username>admin</wsse:Username>
            <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">admin</wsse:Password>
         </wsse:UsernameToken>
      </wsse:Security> 
   </soap:Header>
   <soap:Body>
      <getRepositories xmlns="http://docs.oasis-open.org/ns/cmis/messaging/200908/">
         <extension>
            <MyElement xmlns=""></MyElement>
         </extension>
      </getRepositories>
    </soap:Body>
</soap:Envelope>


Ci-dessous, l'enveloppe SOAP reçu (qui me renvoie donc le résultat) :

<soap:Envelope xmlns:soap="http://schemas.xml soap.org/soap/envelope/">
   <soap:Header>
      <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
         <wsu:Timestamp xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="Timestamp-229">
            <wsu:Created>2014-07-10T14:32:32.056Z</wsu:Created>
            <wsu:Expires>2014-07-10T14:37:32.056Z</wsu:Expires>
         </wsu:Timestamp>
      </wsse:Security>
   </soap:Header>
   <soap:Body>
      <getRepositoriesResponse xmlns="http://docs.oasis-open.org/ns/cmis/messaging/200908/" xmlns:ns2="http://docs.oasis-open.org/ns/cmis/core/200908/" xmlns:ns3="http://www.alfresco.org">
         <repositories>
            <repositoryId>b9fcfabe-5df4-4ff1-9c86-17d58c40864e</repositoryId>
            <repositoryName>Main Repository</repositoryName>
         </repositories>
      </getRepositoriesResponse>
   </soap:Body>
</soap:Envelope>


Lorsque je récupere l'ID du Repository renvoyé dans la réponse (b9fcfabe-5df4-4ff1-9c86-17d58c40864e) et que je l'utilise avec la méthode getRepositoryInfo, j'obtiens une exception.

Ci-dessous, l'enveloppe SOAP envoyé :


<?xml version="1.0" encoding="utf-16"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <soap:Header>
      <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" soap:mustUnderstand="1">
         <wsu:Timestamp xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
            <wsu:Created>2014-07-10T14:52:09.807Z</wsu:Created>
            <wsu:Expires>2014-07-10T14:57:09.807Z</wsu:Expires>
         </wsu:Timestamp>
         <wsse:UsernameToken>
            <wsse:Username>admin</wsse:Username>
            <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">admin</wsse:Password>
         </wsse:UsernameToken>
      </wsse:Security> 
   </soap:Header> 
   <soap:Body>
      <getRepositoryInfo xmlns="http://docs.oasis-open.org/ns/cmis/messaging/200908/">
         <repositoryId>b9fcfabe-5df4-4ff1-9c86-17d58c40864e</repositoryId>
         <extension>
            <MyElement xmlns="">
            </MyElement>
         </extension>
      </getRepositoryInfo>
   </soap:Body>
</soap:Envelope>


L'exception obtenue est :

System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
Parameter name: size
   at System.Net.ConnectStream.Read(Byte[] buffer, Int32 offset, Int32 size)
   at WebServiceStudio.MessageTracer.DumpBytes(Stream stream, Int32 length, StringBuilder sb)
   at WebServiceStudio.MessageTracer.ReadMessage(Stream from, Int32 len, String contentType)
   at WebServiceStudio.WSSWebResponse.DumpResponse(WebResponse response)
   at WebServiceStudio.MainForm.DumpResponse(HttpWebResponse response)
   at WebServiceStudio.MainForm.SendWebRequest()


Auriez-vous une idée d'où cela peut venir ?
2 Replies
cleseach
Active Member II

Re: Probleme lors de l'utilisation du Webservice

Bonjour,

Pas de réponse directe, mais des questions pour essayer de faire avancer la réflexion :
  * Avez-vous testé avec une version 4.2(.f) d'Alfresco ?
  * La réponse fournie par Alfresco lors de votre seconde requête dépasse-t-elle la taille d'un Int32 ?
  * Y'a-t-il des logs côté Alfresco ?
  * Pourquoi utiliser SOAP ?
  * Pouvez-vous nous montrer le code de votre client ?

Cordialement,
Charles Le Seac'h
florian_baillag
Member II

Re: Probleme lors de l'utilisation du Webservice

* Avez-vous testé avec une version 4.2(.f) d'Alfresco ?
Je n'ai pas encore testé avec une version antérieure mais je vais le faire de ce pas !

* La réponse fournie par Alfresco lors de votre seconde requête dépasse-t-elle la taille d'un Int32 ?
Je n'arrive pas à voir la réponse. C'est ce qu'il m'est donné via SOAPClient

* Y'a-t-il des logs côté Alfresco ?
Je n'ai rien trouvé de concluant dans les logs. Je ne vois pas de trace de ma requête.

* Pourquoi utiliser SOAP ?
Je travaille actuellement avec BONITASOFT et il était prévu d'utiliser Alfresco comme un GED. Le connecteur Alfresco fournit par BONITASOFT ne correspond pas à nos attentes, nous pensions donc utiliser SOAP.

* Pouvez-vous nous montrer le code de votre client ?
Afin de tester les enveloppes SOAP (et j'ai un peu de mal à les construire), j'utilise SOAPClient et je n'ai aucun log.

Je n'avais pensé que cela pouvait venir de mon client. Ce qui est bizarre, c'est qu'il me répond cette exception que si l'ID du repository est valide, dans le cas contraire, il me répond bien : "Invalid repository ID".

EDIT :

127.0.0.1 - - [11/Jul/2014:14:50:28 +0200] "POST /alfresco/cmis/RepositoryService HTTP/1.1" 200 24331
Après m'être noyé dans les logs, j'ai trouvé la requête ci dessus et elle me semble bien passer, je vais donc plutôt me diriger vers un problème du client.