cancel
Showing results for 
Search instead for 
Did you mean: 

Obtener direccion del repositorio

dacedos
Champ in-the-making
Champ in-the-making
Buenos dias!

Hay alguna variable de Alfresco donde se almacene la direccion del repositorio o hay alguna forma de obtenerla por java?

Hasta ahora, cuando quiero obtener mediante java un archivo del repositorio de Alfresco lo hago mediante strings y eso se que en un futuro puede dar problemas.

El codigo que utilizo ahora es:

      name = "{http://www.alfresco.org/model/content/1.0}name";
      name = (String) nodeService.getProperty(nodeRef, QName.createQName(name));   
      // direccion del archivo de origen (el que se va a leer
      direccion = "http://localhost:8080/alfresco/d/d/workspace/SpacesStore/'+ nodeRef.getId()+"/"+name

Y queria saber si conoceis una forma de que ese "http://localhost:8080/alfresco" lo obtenga automaticamente.

Gracias!
6 REPLIES 6

pjcaracuel_2349
Confirmed Champ
Confirmed Champ
Buenas,

Entiendo que mejor seria guardar la ruta en un fichero de properties de la aplicacion java en cuestion que implementes. Si necesitas la ruta, echale un vistazo al contenido de este fichero por si te sirve de ayuda
file-server.xml

Saludos

dacedos
Champ in-the-making
Champ in-the-making
Gracias Pedro,

Me interesaba el obtenerlo del propio alfresco mejor que escribirlo en un fichero de properties. Necesito obtener la misma direccion a la que apunta la imagen del tipo de archivo que aparece en la vista de detalles de un archivo.

Estudiando un poco el jsp he dado con la linea pero ya ahi me ha descolocado mas todavia. La linea es:

<a:actionLink id="doc-logo1" value="#{DialogManager.bean.name}" href="#{DialogManager.bean.url}" target="new"
image="#{DialogManager.bean.document.properties.fileType32}" showLink="false" />

pero ese href que es el que me interesa no se como sacarle. Voy a seguir investigando a ver si enlazo algo con los beans. Lo mas cerca que ando es con la propiedad getDownloadURL pero solo me devuelve la mitad de la cadena

pjcaracuel_2349
Confirmed Champ
Confirmed Champ
oki,

yo he encontrado este post, le echas un vistazo?
http://forums.alfresco.com/en/viewtopic.php?f=48&t=18912

Hace referencia a share asi que me imagino no te servira pero algo interesante si he encontrado:

  Alfresco.constants.DEBUG = ${DEBUG?string};
      Alfresco.constants.PROXY_URI = window.location.protocol + "//" + window.location.host + "${url.context}/proxy/alfresco/";
      Alfresco.constants.PROXY_URI_RELATIVE = "${url.context}/proxy/alfresco/";
      Alfresco.constants.PROXY_FEED_URI = window.location.protocol + "//" + window.location.host + "${url.context}/proxy/alfresco-feed/";
      Alfresco.constants.THEME = "${theme}";
      Alfresco.constants.URL_CONTEXT = "${url.context}/";
      Alfresco.constants.URL_PAGECONTEXT = "${url.context}/page/";
      Alfresco.constants.URL_SERVICECONTEXT = "${url.context}/service/";
      Alfresco.constants.URL_FEEDSERVICECONTEXT = "${url.context}/feedservice/";
      Alfresco.constants.ALF_TICKET = "${context.properties.alfTicket!""}";
      Alfresco.constants.USERNAME = "${user.name!""}";
Lo mismo te puede ser util
Saludos

dacedos
Champ in-the-making
Champ in-the-making
Buenas otra vez!

al final no he podido sacar nada de ahi y me he tenido que conformar con añadir una linea al custom-repository.properties de donde leo el "http://localhost:8080/alfresco"

el resto de la direccion lo obtengo igual que el propio alfresco obtiene las url para descargar los ficheros:

      name = (String) nodeService.getProperty(nodeRef, QName.createQName(Constants.PROP_NAME));      
      String ruta = DownloadContentServlet.generateBrowserURL(nodeRef, name);

Pero ahora tiene un comportamiento "curioso" al leer los pdf's porque a veces los encuentra y a veces no. estoy probando a imprimir la direccion y es la misma a la que apunta el "View in browser" de la pagina de detalles del nodo.

Por que puede ser que ocurra esto?? Estoy haciendo pruebas y mas pruebas y no entiendo por que en algunos directorio si que los encuentra y en otros no, el mismo codigo

dacedos
Champ in-the-making
Champ in-the-making
Añado un poco mas de informacion a ver si alguien me puede dar pistas de por que falla esto:

Subo un PDF en una carpeta (Company_home/departamentos) intento firmarlo y da un error al leerlo porque no lo encuentra
Corto ese documento y lo pongo en otro directorio (Company_home/departamentos/calidad) y desde ahi intento firmarlo y lo lee perfectamente

No se ni por donde cogerlo!

los noderefs eran los mismos:

Para el que no encontro:
http://localhost:8080/alfresco/d/d/workspace/SpacesStore/7a95dedd-649f-419a-a4ba-d06510c2d556/Busque...

Para el que si encontro:
http://localhost:8080/alfresco/d/d/workspace/SpacesStore/7a95dedd-649f-419a-a4ba-d06510c2d556/Busque...

dacedos
Champ in-the-making
Champ in-the-making
Bueno finalmente como otra posibilidad he optado por leer la propiedad content del nodo y desde ella sacar la ruta en la que alfresco almacena el fichero en el disco local.

Como solo pretendo leer el contenido y no modificarlo espero no tener problemas puesto que esa propiedad tambien almacena el tamaño del fichero. Aun asi lo posteo aqui por si alguien puede decirme los posibles problemas que esta solucion puede causarme.

Gracias!

La propiedad QName.createQName("{http://www.alfresco.org/model/content/1.0}content")) devuelve algo como:

contentUrl=store://2009/6/1/16/44/bbb9efbc-aeaf-4d6e-af2f-3de87666b30e.bin|mimetype=application/pdf|size=39532|encoding=UTF-8|locale=es_ES_,

en la que /2009/6/1/16/44/bbb9efbc-aeaf-4d6e-af2f-3de87666b30e.bin es la ruta al fichero por debajo de Alfresco/alf_data/content_store