AnsweredAssumed Answered

Problema descarga documentacion Liferay 4.2 Alfresco 3.4

Question asked by mariajrd on Oct 16, 2011
Latest reply on Oct 17, 2011 by mariajrd
Buenos días, acabo de integrar Liferay 4.2.1 con Alfresco 3.4. El problema es, que desde el portlet Gestor Documental, puedo realizar cualquier operación correctamente, incluso la descarga pero, cuando abro el documento descargado lo que me encuentro siempre es un fichero que ocupa 9.8 y que contiene el login de Alfresco. ¿Podría alguien echarme una mano?

Os pongo el fragmento de código donde se realiza la descarga del documento, a ver si se puede ver algo más claro:

      if(Validator.isNotNull(uuid) && Validator.isNotNull(nameFile))
      {
         String version = request.getParameter("version");

          HttpMethod method = null;
      
         PostMethod post = null;
         String urlVersion;
      
         if(Validator.isNotNull(version)){
            urlVersion = AlfrescoUtil.getUrlAccesoVersionDocumento();
         }else{
            urlVersion = AlfrescoUtil.getUrlAccesoDocumento();
         }         

         String name7 = nameFile;
         String name8 = "";
         String encoding = "ISO-8859-1";
         
         name8 = URLEncoder.encode(name7, encoding);
         urlVersion = urlVersion  + uuid + "/" + name8;
         urlVersion = urlVersion.replaceAll(" ", "_x0020_");

         try {
            //_log.error("inicio - webDav");
            HttpClient client = new HttpClient();
            method = new GetMethod(urlVersion);
            
            client.executeMethod(method);
   
            // Se comprueba si se ha devuelto el formulario de login
            boolean esFormularioLogin = false;
            Header header = method.getResponseHeader("Content-Type");
            if (header.getValue().indexOf("text/html") != -1) {
               InputStream is = method.getResponseBodyAsStream();
                BufferedReader br = new BufferedReader(new InputStreamReader(is));
               
               
                String linea = br.readLine();
                while (linea != null) {
                   if (linea.indexOf("action=\""+AlfrescoUtil.getUrlAccesoLoginAlfrescoDescargaDocumentos()+"\"")!=-1) {
                      esFormularioLogin = true;
                      break;
                   }
                   linea = br.readLine();
                }
            }
            //_log.error("fin - webDav");
            // Se env�a la autenticaci�n y se vuelve a intentar descargar
            if (esFormularioLogin) {
               //_log.error("inicio - primera vez que abro fichero");
               // Se env�a el login
               method.releaseConnection();
   
               post = new PostMethod(AlfrescoUtil.getUrlAccesoLoginAlfresco());
               
               //Se obtiene usuario y contrase�a.
               /*
               ThemeDisplay themeDisplay = (ThemeDisplay)request.getAttribute(WebKeys.THEME_DISPLAY);
               
               String usuario = themeDisplay.getUserId();            
               UserIdMapper usuarioPwd = UserIdMapperLocalServiceUtil.getUserIdMapper(themeDisplay.getUser().getUserId(), "password");         
               String passwordUsuario = Encryptor.decrypt(themeDisplay.getCompany().getKeyObj(), usuarioPwd.getExternalUserId());
               */
               
                 NameValuePair name = new NameValuePair("loginForm:user-name", AlfrescoUtil.getAdministradorUser());
                 NameValuePair password = new NameValuePair("loginForm:user-password", AlfrescoUtil.getAdministradorPassword());
                 NameValuePair language   = new NameValuePair("loginForm:language", "es_ES");
                 NameValuePair boton   = new NameValuePair("loginForm:submit", "Entrar");
                 NameValuePair SUBMIT = new NameValuePair("loginForm_SUBMIT", "1");
                 NameValuePair link = new NameValuePair("loginForm:_link_hidden_", "");
                 post.setRequestBody(
                   new NameValuePair[] {name, password, language, boton,
                         SUBMIT, link});
   
               client.executeMethod(post);
               post.releaseConnection();
               
               // Se vuelve a intentar
               method = new GetMethod(urlVersion);
               
               client.executeMethod(method);
               
               //_log.error("fin - primera vez que abro fichero");
            }
            //_log.error("inicio - sendFile");
            ServletResponseUtil.sendFile(response, name7, method.getResponseBodyAsStream(), mimeType);
            
            //_log.error("fin - sendFile - inicio - release");
            method.releaseConnection();
            //_log.error("fin - release");
         } catch (HttpException e) {
            e.printStackTrace();
         } catch (IOException e) {
            e.printStackTrace();
         } catch (Exception e){
            e.printStackTrace();
         } finally {
           // Release the connection.
            if (method != null)
               method.releaseConnection();
         }
      }

Muchas gracias de  antemano.

Outcomes