AnsweredAssumed Answered

Servlet externo para búsquedas [Solucionado]

Question asked by anusk_6671 on Jul 16, 2010
Latest reply on Jul 19, 2010 by anusk_6671
Hola a todos!

Estoy intentando hacer un servlet para poder acceder a Alfresco mediante una URL determinada. La idea es que te redirija directamente a la página de resultados de la búsqueda.
En el servlet creo un UIComponent del tipo UISimpleSearch, un evento, y por último le añado el searchContext al evento.
Mi problema es que sólo funciona correctamente si el usuario se logea antes en Alfresco , y una vez logeado pone la URL en el navegador. En cambio si directamente pongo la URL sin haber iniciado sesión (y éste es el funcionamiento que necesito), Alfresco se dirije al espacio de Company Home en vez de mostrar los resultados de la búsqueda, y si vuelvo a cargar la página, me pone la cabecera de "Search Results" pero sigue mostrando en el dashlet de "browse spaces" los espacios dentro de Company Home.

El código dentro del Servlet para crear la búsqueda :

      // we almost always need this bean reference
      FacesContext fc = FacesHelper.getFacesContext(req, res, getServletContext());
      BrowseBean browseBean = (BrowseBean)FacesHelper.getManagedBean(fc, "BrowseBean");
   
      outcome=OUTCOME_BROWSE;

      //Creamos en UIComponent, el evento y llamamos al browseBean para …
       UISimpleSearch search = new UISimpleSearch();
       search.setId("search");
   
      //prueba para búsqueda del texto "index"
      SearchEvent sevent= new SearchEvent(search,"index",0);
      search.broadcast(sevent);    

     // método propio en el BrowseBean para asociar el searchContext con el evento
      browseBean.setSearchContext(sevent);

      fc.getApplication().getNavigationHandler().handleNavigation(fc, null, outcome);
      // perform the forward to the page processed by the Faces servlet
      String viewId = fc.getViewRoot().getViewId();
      getServletContext().getRequestDispatcher(FACES_SERVLET + viewId).forward(req, res);
     
  

Alguna idea de porqué sólo me funciona cuando el usuario se logea antes?

Outcomes