Busqueda dentro de un espacio sobre una propiedad

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

Re: Busqueda dentro de un espacio sobre una propiedad

Aiii no se si nos estamos liando un poquillo  :?

A ver, resumo un poco todo vale?

1- Búsqueda solo por ASPECT: me lo encuentra bien el nodo (una maravilla!  Smiley Very Happy )

2- Búsqueda solo por PATH: me encuentra un nodo, pero no se encuentra ni de lejos en el path indicado… Al querer ver la información del nodo con el explorador de nodos, me salta el error que posteé un poco antes.

3- Búsqueda por PATH y ASPECT: lógicamente si las búsquedas por separado no dan ningún resultado en común esta búsqueda no encuentra nada…

Sé que la búsqueda por ASPECT la hace bien, lo que no entiendo es porqué la búsqueda por PATH la hace mal… De hecho si voy al nodo que tengo que encontrar y cojo su path (ver post anterior), ese path es hijo del path de la búsqueda, a no ser que si te fijas la dirección url no es del tipo "http:\\alfresco…..", tiene un "http:\\libertyseguros….".

No sé si te aclarará algo.

Gracias por tu interés ajv!
fstnboy
Active Member

Re: Busqueda dentro de un espacio sobre una propiedad

Haciendo pruebas, he dado con la solución (parcial), pero no sé el porqué… en la wiki no sale esa opcion  :?

Como el string que me devuelve el toPrefixString tiene caracteres raros, he realizado búsquedas con todas las opciones. Cambiando sólo los carácteres que necesiten llevar tildes, por ejemplo, en vez de el 3/4 que me devuelve la función pongo la 'ó' y dejo los espacios que deberían ser tal y como me los devuelve (_x0020_).

Y como final pongo '/.' (que no aparece en la wiki…). La búsqueda solo con PATH ahora me la hace bien (tengo que encontrar una forma de quitar los caracteres esos raros y poner las vocales con las tildes, alguna idea??), pero al combinarla con la búsqueda por ASPECT, solo me funciona si pongo un solo símbolo '+' (o es que el primero no lo necesita?). La búsqueda que ahora mismo me funcionaría sería la siguiente:

ASPECT:"{http://www.libertyseguros.es/model/content/ajd/1.0}EsEmpresa" +PATH:"/app:company_home/ajd:Asesoría_x0020_Jurídica/ajdSmiley Tonguerocedimientos/ajd:Administrativos/ajdSmiley Tonguerotección_x0020_de_x0020_datos/."

Estaría bien???
fstnboy
Active Member

Re: Busqueda dentro de un espacio sobre una propiedad

Canto victoria muy pronto…  Smiley Sad

Como ya he dicho, la búsqueda por ASPECT va perfecto, pero la búsqueda por PATH me engaña…

En el explorador de nodos realizo la búsqueda solo por PATH, y se supone que me devuelve el nodo que quiero (el nombre que muestra es el mismo), pero al intentar acceder a la información del nodo me salta un error…

El error es este:
javax.faces.FacesException: Could not retrieve value of component with path : {Component-Path : [Class: javax.faces.component.UIViewRoot,ViewId: /jsp/admin/node-browser.jsp][Class: javax.faces.component.html.HtmlForm,Id: searchForm][Class: javax.faces.component.html.HtmlCommandLink,Id: selectPrimaryPath][Class: javax.faces.component.html.HtmlOutputText,Id: primaryPath]} 
at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:425)
at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:211)
at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:132)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:140)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.alfresco.web.app.servlet.AdminAuthenticationFilter.doFilter(AdminAuthenticationFilter.java:80)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.alfresco.web.app.servlet.AuthenticationFilter.doFilter(AuthenticationFilter.java:81)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
at java.lang.Thread.run(Thread.java:619)
Caused by: org.apache.jasper.JasperException: Could not retrieve value of component with path : {Component-Path : [Class: javax.faces.component.UIViewRoot,ViewId: /jsp/admin/node-browser.jsp][Class: javax.faces.component.html.HtmlForm,Id: searchForm][Class: javax.faces.component.html.HtmlCommandLink,Id: selectPrimaryPath][Class: javax.faces.component.html.HtmlOutputText,Id: primaryPath]}
at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:512)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:395)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:419)
… 29 more

En cambio puedo entrar sin problemas al resultado obtenido de la búsqueda por ASPECT…
fstnboy
Active Member

Re: Busqueda dentro de un espacio sobre una propiedad

Es que no entiendo la búsqueda por PATH porque no encuentra el espacio…. He sacado el toPrefixString del espacio a buscar y es:
/app:company_home/ajd:Asesoría_x0020_Jurídica/ajdSmiley Tonguerocedimientos/ajd:Administrativos/ajdSmiley Tonguerotección_x0020_de_x0020_datos/cmSmiley Tonguerueba_x0020_PD

Cuando yo estoy buscando:

+ASPECT:"{http://www.libertyseguros.es/model/content/ajd/1.0}EsEmpresa"
+PATH:"/app:company_home/ajd:Asesoría_x0020_Jurídica/ajdSmiley Tonguerocedimientos/ajd:Administrativos/ajdSmiley Tonguerotección_x0020_de_x0020_datos//*"

Creo que no lo reconoce como "hijo"… Decir que el espacio a buscar ha sido creado manualmente, supongo que por eso tendrá el prefijo "cm", puede tener algo que ver?
ajv
Member II

Re: Busqueda dentro de un espacio sobre una propiedad

Buenas!

Se agradece el mini-resumen, pues al mirarlo de tarde en tarde y con varias cosas en la cabeza, dificulta el seguimiento… Smiley Surprisedops:
A ver, por partes:
- Respecto a que cuando muestras por consola el path, los acentos te salen con caracteres extraños…¿no será que el charset de tu consola está en ascii o similar y te pone los caracteres esos?? Tendrías que descartar que realmente es problema de visualización de esos caracteres con acentos o que, por el contrario, los caracteres están internamente mal codificados. Para salir de dudas, se me ocurre que podrías crearte un Log con el que mostrar en el mismo fichero de alfresco.log el path en cuestión.
Registras el log en la clase:
private static Log s_logger = LogFactory.getLog(mi_clase.class);
Informas del path:
//A la hora de mostrar el path
s_logger.info(mi_path);
Registras el log en el fichero log4j.properties de \webapps\alfresco\WEB-INF\classes:
log4j.logger.mi_paquete.mi_clase=info

- Respecto al hecho de que de nuevo te dé el error del primaryPath inicialmente me aumentó la sospecha de que el espacio había sido creado de una forma "sospechosa"…porque parecía que el primaryPath se había "perdido". Desgranando un poco de código, el explorador de nodos, cuando quiere obtener el primaryPath, básicamente hace un nodeService.getPath(nodeRef) y le aplica una decodificación ISO-9075.
Entonces, esto tiene pinta de que vuelve otra vez al tema de los charset's. Prueba una cosa:
1.- Realiza la búsqueda con el ASPECT….que seguro obtendrás el NodeRef que estamos "investigando".
2.- Haz: Path path= nodeService.getPath(nodeRef) e imprímelo.
3.- Después, haz: ISO9075.decode(path.toString()) e imprímelo.
Esta clase forma parte del paquete: org.alfresco.util.ISO9075;

A ver si sacamos algo en claro…tiene pinta de algo de charset's. Quizás en la base de datos no tienes definido el charset que toca, o el procedimiento que realizó la creación no "entendió" bien los acentos…no sé, espero haberte dado algunas pistas de por dónde encontrar el error.

Saludos!!
fstnboy
Active Member

Re: Busqueda dentro de un espacio sobre una propiedad

Ya lo he hecho, efectivamente lo de los tildes es tema del charset de la consola  Smiley Surprisedops:

En cuanto al resultado obtenido de la búsqueda solo con ASPECT he imprimiendo los dos path, lo que veo en el log es lo siguiente:


2008-09-17 17:07:02,214 INFO  [org.alfresco.web.bean.ResumenEjecutivoBean] /{http://www.alfresco.org/model/application/1.0}company_home/{http://www.libertyseguros.es/model/conte...

2008-09-17 17:07:02,245 INFO  [org.alfresco.web.bean.ResumenEjecutivoBean] /{http://www.alfresco.org/model/application/1.0}company_home/{http://www.libertyseguros.es/model/conte... Jurídica/{http://www.libertyseguros.es/model/content/ajd/1.0}Procedimientos/{http://www.libertyseguros.es/mode... de datos/{http://www.alfresco.org/model/content/1.0}Prueba PD

El primero es obteniendo el path sin más, mientras que el segundo es con la decodificación ISO-9075.

Se puede ver que en dicha decodificación los espacios son eso, espacios, mientras que en la otra se representan mediante '_x0020_'
fstnboy
Active Member

Re: Busqueda dentro de un espacio sobre una propiedad

Bueeeeeno, otra cosa rara me pasa, y creo que será la raíz de los problemas.

Realizo una búsqueda lucene desde el explorador de nodos tal que: "PATH:"/app:company_home/ajd:Asesoría_x0020_Jurídica/ajdSmiley Tonguerocedimientos/ajd:Administrativos/ajdSmiley Tonguerotección_x0020_de_x0020_datos"" (quitando la comilla del principio y de fin…), me devuelve un espacio (el mismo, claro está), peeeeero, a la hora de acceder al espacio salta el error que posteé ¿sospechoso?

Al explorar los nodos, manualmente, el espacio que si encuentro es:
/{http://www.alfresco.org/model/application/1.0}company_home/{http://www.libertyseguros.es/model/conte... Jurídica/{http://www.libertyseguros.es/model/content/ajd/1.0}Procedimientos/{http://www.libertyseguros.es/mode... de datos

pasando a toPrefixString sería:
/app:company_home/ajd:Asesoría Jurídica/ajd:Procedimientos/ajd:Administrativos/ajd:Protección de datos

Pero al realizar la búsqueda por PATH con espacios no me encuentra nada. El problema está en los espacios….

¿Qué puedo hacer?
fstnboy
Active Member

Re: Busqueda dentro de un espacio sobre una propiedad

Bueeeeeno, otra cosa rara me pasa, y creo que será la raíz de los problemas.

Realizo una búsqueda lucene desde el explorador de nodos tal que: "PATH:"/app:company_home/ajd:Asesoría_x0020_Jurídica/ajdSmiley Tonguerocedimientos/ajd:Administrativos/ajdSmiley Tonguerotección_x0020_de_x0020_datos"" (quitando la comilla del principio y de fin…), me devuelve un espacio (el mismo, claro está), peeeeero, a la hora de acceder al espacio salta el error que posteé ¿sospechoso?

Al explorar los nodos, manualmente, el espacio que si encuentro es:
/{http://www.alfresco.org/model/application/1.0}company_home/{http://www.libertyseguros.es/model/conte... Jurídica/{http://www.libertyseguros.es/model/content/ajd/1.0}Procedimientos/{http://www.libertyseguros.es/mode... de datos

pasando a toPrefixString sería:
/app:company_home/ajd:Asesoría Jurídica/ajd:Procedimientos/ajd:Administrativos/ajd:Protección de datos

Pero al realizar la búsqueda por PATH con espacios no me encuentra nada. El problema está en los espacios….

¿Qué puedo hacer?
ajv
Member II

Re: Busqueda dentro de un espacio sobre una propiedad

Hola fstnboy!

Estamos rozando lo surrealista!   :lol:
Pero todo tiene su explicación, así que intentaremos encontrarla…en ningún momento hemos comprobado la creación esa que dijiste que hacías por código siguiendo el tutorial de Jeff Potts. Es posible que en ese punto se te escapara algo?

Yo intentaría crear un espacio de tu tipo, pero a través del cliente web de Alfresco…Para ello, tienes que hacer público (visible) desde el cliente web el tipo de espacio tuyo y crearlo desde la opción de "Asistente avanzado de espacio", "Desde cero" y escogiendo tu tipo de espacio…a ver si hay alguna diferencia. De esta forma, veremos si te pone el path como en este caso, o con el namespace de content, etc…
En este post, explicamos un día cómo publicar un espacio personal:
http://forums.alfresco.com/es/viewtopic.php?f=11&t=595&start=0&st=0&sk=t&sd=a

A ver si así, por lo menos, vamos descartando posibles focos de errores…
Venga, que haya suerte!  :wink:
fstnboy
Active Member

Re: Busqueda dentro de un espacio sobre una propiedad

ummmm

Veamos.

He cambiado el web-client-config-custom.xml y le he añadido el siguiente código:

   <config evaluator="string-compare" condition="Space Wizards">
      <folder-types>
         <type name="ajd:reclagpd"/>
      </folder-types>
   </config>

Luego he arrancado el JBOSS y me he creado en la raiz un espacio nuevo con el "Asistente avanzado de espacios". Navegando con el explorados de nodos lo he encontrado en: /{http://www.alfresco.org/model/application/1.0}company_home/{http://www.alfresco.org/model/content/1.... de Pruebas. Por lo que he hecho una búsqueda por PATH tal que: PATH:"/app:company_home/cm:Espacio_x0020_de_x0020_Pruebas". Me lo ha encontrado, he intentado acceder por si me daba el error que me da con los otros y ha entrado!!!

Lo que no entiendo es porqué me ha puesto como prefijo el cm y no el ajd….