AnsweredAssumed Answered

upload rest probleme

Question asked by tsn06 on Apr 7, 2009
Latest reply on Apr 8, 2009 by tsn06
Bonjour,

Je suis débutant sur alfresco et j'éprouve de grosses difficultés à faire des choses de bases …
En l'occurrence j'ai un utilisateur toto qui possede un spacestore : 8d7f3af2-9ec7-41f3-9881-0e75e0d232eb que j'ai créé en passant par l'ihm.

Je souhaiterai uploader un fichier dans ce spacestore en utilisant le service rest qui va bien :
http://localhost:8080/alfresco/service/api/upload
en POST biens sûr.

Pour le moment afin de simplifier la chose je me contente de passer une simple chaine de caractères en guise de fichier.

Voici mon test unitaire sensé s'occuper de ça :


   @org.junit.Test
   public void testArgh() {

      String adresse = "http://localhost:8080/alfresco/service/api/upload";
      try {
         String urlBase = "http://localhost:8080/alfresco/service/api/login?";

         Map<String, String> mapArguments = new HashMap<String, String>();
         mapArguments.put("u", "admin");
         mapArguments.put("pw", "admin");
         String retour = "";

         URL url = UtilsWS.buildURL(urlBase, mapArguments);
         retour = (String) UtilsWS.extractLocation(url, null);

         String ticket = "";
         int index = retour.indexOf("<ticket>");
         if (index != -1) {
            ticket = retour.substring(index + 8, retour.length() - 9);
         }
         System.out.println("Valeur du ticket: " + ticket);

         //———————————————————————————————————-
         
         mapArguments = new HashMap<String, String>();
         mapArguments.put("filename", "test");
         mapArguments.put("username", "toto");
         //mapArguments.put("ticket", ticket);
         mapArguments.put("mimetype", "text/plain");
         mapArguments.put("title", "titre");
         mapArguments.put("author", "auteur");
         mapArguments.put("encoding", "UTF-8");
         mapArguments.put("description", "description");
         mapArguments.put("nodeid", "8d7f3af2-9ec7-41f3-9881-0e75e0d232eb");
         mapArguments.put("content", "contenu de mon pseudo fichier");


         java.net.Authenticator.setDefault(new MyAuthenticator("admin", "admin"));
         url = UtilsWS.buildURL(adresse+"?ticket="+ticket, null);
         URL donneesURL = UtilsWS.buildURL(adresse+"?", mapArguments);
         String donnees = donneesURL.toString().substring(donneesURL.toString().indexOf('?')+1);
         System.out.println("arguments: " + donnees);

         // création de la connection
         URLConnection conn = url.openConnection();
         conn.setDoOutput(true);
         //conn.setDoInput(true);

         // envoi de la requête
         OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream());
         writer.write(donnees.toString());
         
/*         File file = new File("D:\\derby.log");
         InputStreamReader fileReader = new InputStreamReader(new FileInputStream(file));
         BufferedReader fileBuffer = new BufferedReader(fileReader);
         String ligne;
         StringBuffer sb = new StringBuffer();
         while ((ligne = fileBuffer.readLine()) != null) {
            System.out.println(URLEncoder.encode(ligne, "UTF-8"));
            sb.append(URLEncoder.encode(ligne, "UTF-8"));
         }
         writer.write(sb.toString());*/
         writer.flush();

         // lecture de la réponse
         BufferedReader reader = new BufferedReader(new InputStreamReader(
               conn.getInputStream()));
         String result;
         while ((result = reader.readLine()) != null) {
            System.out.println(result);
         }
      } catch (UnsupportedEncodingException e) {
         System.err.println(e.getMessage());
         return;
      } catch (MalformedURLException e) {
         System.err.println(e.getMessage());
         return;
      } catch (Exception e) {
         System.err.println(e.getMessage());
      }
   }

Les valeurs passées en post apparaissent comme ceci:
content=contenu+de+mon+pseudo+fichier&author=auteur&storeid=8d7f3af2-9ec7-41f3-9881-0e75e0d232eb&title=titre&mimetype=text%2Fplain&username=toto&description=description&encoding=UTF-8&filename=test&

Et le serveur me renvoie :
Server returned HTTP response code: 500 for URL: http://localhost:8080/alfresco/service/api/upload?ticket=TICKET_d9a76d5df6bb3324c553477121a2c701eeb40fd5


Quelqu'un pourrait il m'expliquer ce qui cloche, la démarche à avoir ou me fournir un exemple ?

D'avance merci :)

Outcomes