Hi,

Be sure to have the seam.properties empty file somewhere in your jar (for
example in META-INF) so that seam components are looked for in your jar at
startup (I've forgot it a couple of time.. long time debugging ;-))

Nel

2008/6/27 Radu Ux <[EMAIL PROTECTED]>:

> Look for startup logs, it is possible that your jar isn't deployed
> correctly because some reasons.
>
> Thx, Radu
>
> Chris Pioli wrote:
> > I'm running into trouble with my new document type. I am trying to create
> a
> > search UI, and it's not working properly.
> >
> > I created a new tab in my new document type, which contains a search
> prompt.
> > All my documents have some space set aside for keywords, and the search
> UI I'm
> > designing is going to search all documents and return the documents that
> have
> > the matching keyword. I go to the tab, type in the keyword I want to
> search
> > for, and then I click the "search" button, and then this error appears in
> the
> > browser:
> >
> > /incl/tabs/my_view.xhtml @22,80 value="#{myFileManager.keyword}": Target
> > Unreachable, identifier 'myFileManager' resolved to null
> >
> > I have a feeling it relates to the connection between the .xhtml file and
> my
> > Bean. Has anyone seen this error before, and how do I solve it?
> >
> > This was the code for my .xhtml document:
> >
> > <div xmlns="http://www.w3.org/1999/xhtml";
> >        xmlns:f="http://java.sun.com/jsf/core";
> >        xmlns:h="http://java.sun.com/jsf/html";>
> >
> > <h2>Searching for documents by keywords</h2>
> >
> > <h:messages styleClass="errorMessage" />
> >
> > <h:form>
> >   <h:panelGrid columns="3" styleClass="dataInput"
> >     columnClasses="labelColumn, fieldColumn, fieldColumn">
> >     <h:outputLabel value="Enter a keyword to search for" />
> >     <h:inputText id="theKeyword" value="#{myFileManager.keyword}"
> > required="true" />
> >     <h:commandButton type="submit" value="Search" action="#
> > {myFileManager.performSearch}" class="button"/>
> >     <h:message for="theKeyword" styleClass="errorMessage" />
> >   </h:panelGrid>
> > </h:form>
> >
> > The code for my Bean is below. Please note the fact that I liberally took
> > parts of the SearchActionsBean and put them into my class, and I also
> added in
> > the search method from the BookManagerBean incase I could use that (I
> haven't
> > done so yet, though).
> >
> > @Scope(ScopeType.CONVERSATION)
> > @Name("myFileManager")
> > public class MyFileManagerBean {
> >       private static final Log log = LogFactory.getLog
> > (MyFileManagerBean.class);
> >
> >       private static final String ACTION_PAGE_SEARCH_NXQL
> > = "search_results_nxql";
> >
> >       private static final String PROV_NXQL =
> "SEARCH_BEAN_NXQL_PROVIDER";
> >
> >       private static final String ACTION_PAGE_SEARCH_QUERY_ERROR = null;
> >
> >       private static final String ACTION_PAGE_SEARCH_NO_KEYWORDS = null;
> >
> >       private String queryErrorMsg;
> >
> >       @In(required = false, create = true)
> >       private transient ResultsProvidersCache resultsProvidersCache;
> >
> >       @In(create = true)
> >       private transient Context conversationContext;
> >
> >       @PrePassivate
> >       public void prePassivate() {
> >               log.debug("prePassivate");
> >       }
> >
> >       @PostActivate
> >       public void postActivate() {
> >               log.debug("postActivate");
> >       }
> >
> >       @Remove
> >       @Destroy
> >       public void destroy() {
> >               log.debug("destroy");
> >       }
> >
> >       @In(create = true)
> >       protected transient NavigationContext navigationContext;
> >
> >       @In(create = true)
> >       protected transient WebActions webActions;
> >
> >       @In(create = true)
> >       protected transient CoreSession documentManager;
> >
> >       @In(create = true)
> >       protected transient FacesMessages facesMessages;
> >
> >       @In(create = true)
> >       protected transient ResourcesAccessor resourcesAccessor;
> >
> >       private String keyword;
> >
> >       public String getKeyword() {
> >               if (keyword == null) {
> >                       keyword="";
> >               }
> >               return keyword;
> >       }
> >
> >       public void setKeyword(String t) {
> >               keyword = t;
> >       }
> >
> >       public ResultSet getSearchResults() throws Exception {
> >           SearchService searchService = Framework.getService
> > (SearchService.class);
> >           ComposedNXQuery query = new ComposedNXQueryImpl("SELECT * FROM
> > Document WHERE"
> >       + " ecm:primaryType = 'MyFile'"
> >
> >       + " AND ht:myKeywords = '"
> >
> >       + keyword + "'");
> >           ResultSet resultSet = searchService.searchQuery(query, 0, 10);
> >           return resultSet;
> >       }
> >
> >       public String performSearch() throws ClientException,
> >                       ECInvalidParameterException {
> >
> >               if (log.isDebugEnabled()) {
> >                       log.debug("performing searchType: NXQL");
> >               }
> >               try {
> >                       String page;
> >                       PagedDocumentsProvider resultsProvider = null;
> >                       if (tag == null) {
> >                               log.warn("Tagging search: no tag query has
> > been provided");
> >                               return ACTION_PAGE_SEARCH_NO_KEYWORDS;
> >                       }
> >                       log.debug("Query: " + "SELECT * FROM Document
> WHERE"
> >                                                               + "
> > ecm:primaryType = 'MyFile'"
> >                                                               + " AND
> > ht:myKeywords = '" + keyword + "'");
> >                       resultsProvidersCache.invalidate(PROV_NXQL);
> >                       resultsProvider =
> resultsProvidersCache.get(PROV_NXQL);
> >                       page = ACTION_PAGE_SEARCH_NXQL;
> >
> >                       if (resultsProvider instanceof SearchPageProvider)
> {
> >                               String lastQuery = ((SearchPageProvider)
> > resultsProvider).getQuery();
> >                               conversationContext.set("search.lastQuery",
> > lastQuery);
> >                       } else {
> >                               conversationContext.set("search.lastQuery",
> > null);
> >                       }
> >
> >                       return page;
> >               } catch (SortNotSupportedException e) {
> >                       queryErrorMsg = e.getMessage();
> >                       log.debug("Search error " + e.getMessage(), e);
> >                       return ACTION_PAGE_SEARCH_QUERY_ERROR;
> >               } catch (ClientException e) {
> >                       // Present to user: we should make the difference
> > between
> >                       // QueryException and actual errors (hey, I'm just
> > copying what
> >                       // they said)
> >                       queryErrorMsg = e.getMessage();
> >                       log.debug("Search error: " + e.getMessage(), e);
> >                       return ACTION_PAGE_SEARCH_QUERY_ERROR;
> >               }
> >       }
> > }
> >
> >
> >
> >
> > _______________________________________________
> > ECM mailing list
> > [email protected]
> > http://lists.nuxeo.com/mailman/listinfo/ecm
> _______________________________________________
> ECM mailing list
> [email protected]
> http://lists.nuxeo.com/mailman/listinfo/ecm
>
_______________________________________________
ECM mailing list
[email protected]
http://lists.nuxeo.com/mailman/listinfo/ecm

Reply via email to