1 2 Previous Next 26 Replies Latest reply on Aug 8, 2007 8:31 AM by Viggo Navarsete

    JSF 1.2 + Woodstock

    Viggo Navarsete Expert

      Environment:
      JBoss Portal Version: 2.6
      Did you get Portal from CVS? or download it? Downloaded
      JBoss AS Version: 4.2.0 GA
      Database Vendor and Version: Postgres 8.1
      JDBC Connector and Version: postgresql-8.1-404.jdbc3.jar
      OS Platform: Ubuntu 7.0.4

      Describe the problem:
      I've developed a portlet which utilizes the woodstock components. I have the following code in my jsp:

      <%@page contentType="text/html"%>
      <%@page pageEncoding="UTF-8"%>
      
      <%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
      <%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
      
      <%-- Uncomment below lines to add portlet taglibs to jsp --%>
      <%@ page import="javax.portlet.*"%>
      <%@ taglib uri="http://java.sun.com/portlet" prefix="portlet"%>
      
      <portlet:defineObjects />
      <%PortletPreferences prefs = renderRequest.getPreferences();%>
      
      <f:view>
      <webuijsf:label id="label1" text="viggo" />
      </f:view>


      The portlet deploys ok, but when I try to access it I get the following stacktrace:
      02:19:53,900 INFO [DefaultLoadEventListener] Error performing load command
      org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [org.jboss.portal.core.impl.model.portal.ObjectNode#38]
       at org.hibernate.impl.SessionFactoryImpl$1.handleEntityNotFound(SessionFactoryImpl.java:377)
       at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:145)
       at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:195)
       at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:103)
       at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878)
       at org.hibernate.impl.SessionImpl.internalLoad(SessionImpl.java:846)
       at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:557)
       at org.hibernate.type.ManyToOneType.assemble(ManyToOneType.java:196)
       at org.hibernate.cache.StandardQueryCache.get(StandardQueryCache.java:130)
       at org.hibernate.loader.Loader.getResultFromQueryCache(Loader.java:2161)
       at org.hibernate.loader.Loader.listUsingQueryCache(Loader.java:2126)
       at org.hibernate.loader.Loader.list(Loader.java:2096)
       at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:94)
       at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1569)
       at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:283)
       at org.hibernate.impl.CriteriaImpl.uniqueResult(CriteriaImpl.java:305)
       at org.jboss.portal.core.impl.model.portal.PersistentPortalObjectContainer.getObjectNodeNoCache(PersistentPortalObjectContainer.java:262)
       at org.jboss.portal.core.impl.model.portal.PersistentPortalObjectContainer.getObjectNode(PersistentPortalObjectContainer.java:290)
       at org.jboss.portal.core.impl.model.portal.PersistentPortalObjectContainer.getObjectNode(PersistentPortalObjectContainer.java:242)
       at org.jboss.portal.core.impl.model.portal.AbstractPortalObjectContainer.getObject(AbstractPortalObjectContainer.java:89)
       at org.jboss.portal.core.model.portal.command.PortalObjectCommand.acquireResources(PortalObjectCommand.java:68)
       at org.jboss.portal.core.model.portal.command.PortalCommand.acquireResources(PortalCommand.java:56)
       at org.jboss.portal.core.aspects.controller.ResourceAcquisitionInterceptor.invoke(ResourceAcquisitionInterceptor.java:42)
       at org.jboss.portal.core.controller.ControllerInterceptor.invoke(ControllerInterceptor.java:40)
       at org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
       at org.jboss.portal.common.invocation.Invocation.invoke(Invocation.java:157)
       at org.jboss.portal.core.controller.ControllerContext.execute(ControllerContext.java:128)
       at org.jboss.portal.core.model.portal.command.render.RenderWindowCommand.render(RenderWindowCommand.java:68)
       at org.jboss.portal.core.model.portal.command.render.RenderPageCommand.execute(RenderPageCommand.java:203)
       at org.jboss.portal.core.controller.ControllerCommand$1.invoke(ControllerCommand.java:68)
       at org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:131)
       at org.jboss.portal.core.aspects.controller.node.EventBroadcasterInterceptor.invoke(EventBroadcasterInterceptor.java:123)
       at org.jboss.portal.core.controller.ControllerInterceptor.invoke(ControllerInterceptor.java:40)
       at org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
       at org.jboss.portal.core.aspects.controller.ControlInterceptor.invoke(ControlInterceptor.java:57)
       at org.jboss.portal.core.controller.ControllerInterceptor.invoke(ControllerInterceptor.java:40)
       at org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
       at org.jboss.portal.core.aspects.controller.PageCustomizerInterceptor.invoke(PageCustomizerInterceptor.java:118)
       at org.jboss.portal.core.controller.ControllerInterceptor.invoke(ControllerInterceptor.java:40)
       at org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
       at org.jboss.portal.core.aspects.controller.PolicyEnforcementInterceptor.invoke(PolicyEnforcementInterceptor.java:77)
       at org.jboss.portal.core.controller.ControllerInterceptor.invoke(ControllerInterceptor.java:40)
       at org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
       at org.jboss.portal.core.aspects.controller.node.PortalNodeInterceptor.invoke(PortalNodeInterceptor.java:81)
       at org.jboss.portal.core.controller.ControllerInterceptor.invoke(ControllerInterceptor.java:40)
       at org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
       at org.jboss.portal.core.aspects.controller.NavigationalStateInterceptor.invoke(NavigationalStateInterceptor.java:42)
       at org.jboss.portal.core.controller.ControllerInterceptor.invoke(ControllerInterceptor.java:40)
       at org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
       at org.jboss.portal.core.controller.ajax.AjaxInterceptor.invoke(AjaxInterceptor.java:51)
       at org.jboss.portal.core.controller.ControllerInterceptor.invoke(ControllerInterceptor.java:40)
       at org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
       at org.jboss.portal.core.aspects.controller.ResourceAcquisitionInterceptor.invoke(ResourceAcquisitionInterceptor.java:50)
       at org.jboss.portal.core.controller.ControllerInterceptor.invoke(ControllerInterceptor.java:40)
       at org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
       at org.jboss.portal.common.invocation.Invocation.invoke(Invocation.java:157)
       at org.jboss.portal.core.controller.ControllerContext.execute(ControllerContext.java:128)
       at org.jboss.portal.core.model.portal.PortalObjectResponseHandler.processCommandResponse(PortalObjectResponseHandler.java:74)
       at org.jboss.portal.core.controller.classic.ClassicResponseHandler.processHandlers(ClassicResponseHandler.java:79)
       at org.jboss.portal.core.controller.classic.ClassicResponseHandler.processCommandResponse(ClassicResponseHandler.java:53)
       at org.jboss.portal.core.controller.handler.ResponseHandlerSelector.processCommandResponse(ResponseHandlerSelector.java:72)
       at org.jboss.portal.core.controller.Controller.processCommandResponse(Controller.java:279)
       at org.jboss.portal.core.controller.Controller.processCommand(Controller.java:267)
       at org.jboss.portal.core.controller.Controller.handle(Controller.java:226)
       at org.jboss.portal.server.RequestControllerDispatcher.invoke(RequestControllerDispatcher.java:51)
       at org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:131)
       at org.jboss.portal.core.cms.aspect.IdentityBindingInterceptor.invoke(IdentityBindingInterceptor.java:47)
       at org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:38)
       at org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
       at org.jboss.portal.server.aspects.server.ContentTypeInterceptor.invoke(ContentTypeInterceptor.java:68)
       at org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:38)
       at org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
       at org.jboss.portal.core.aspects.server.LocaleInterceptor.invoke(LocaleInterceptor.java:96)
       at org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:38)
       at org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
       at org.jboss.portal.core.aspects.server.UserInterceptor.invoke(UserInterceptor.java:245)
       at org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:38)
       at org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
       at org.jboss.portal.server.aspects.server.SessionInvalidatorInterceptor.invoke(SessionInvalidatorInterceptor.java:84)
       at org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:38)
       at org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
       at org.jboss.portal.core.impl.api.user.UserEventBridgeTriggerInterceptor.invoke(UserEventBridgeTriggerInterceptor.java:65)
       at org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:38)
       at org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
       at org.jboss.portal.core.aspects.server.TransactionInterceptor.org$jboss$portal$core$aspects$server$TransactionInterceptor$invoke$aop(TransactionInterceptor.java:49)
       at org.jboss.portal.core.aspects.server.TransactionInterceptor$invoke_N5143606530999904530.invokeNext(TransactionInterceptor$invoke_N5143606530999904530.java)
       at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:79)
       at org.jboss.aspects.tx.TxInterceptor$RequiresNew.invoke(TxInterceptor.java:253)
       at org.jboss.portal.core.aspects.server.TransactionInterceptor$invoke_N5143606530999904530.invokeNext(TransactionInterceptor$invoke_N5143606530999904530.java)
       at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:79)
       at org.jboss.aspects.tx.TxInterceptor$RequiresNew.invoke(TxInterceptor.java:262)
       at org.jboss.portal.core.aspects.server.TransactionInterceptor$invoke_N5143606530999904530.invokeNext(TransactionInterceptor$invoke_N5143606530999904530.java)
       at org.jboss.portal.core.aspects.server.TransactionInterceptor.invoke(TransactionInterceptor.java)
       at org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:38)
       at org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
       at org.jboss.portal.server.aspects.LockInterceptor$InternalLock.invoke(LockInterceptor.java:70)
       at org.jboss.portal.server.aspects.LockInterceptor.invoke(LockInterceptor.java:131)
       at org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
       at org.jboss.portal.common.invocation.Invocation.invoke(Invocation.java:157)
       at org.jboss.portal.server.servlet.PortalServlet.service(PortalServlet.java:380)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
       at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
       at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
       at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
       at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
       at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
       at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
       at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
       at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
       at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
       at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
       at java.lang.Thread.run(Thread.java:619)
      02:19:53,975 ERROR [STDERR] Jul 5, 2007 2:19:53 AM com.sun.faces.portlet.LifecycleImpl$RenderResponsePhase execute
      INFO: PS_CSFP0055:About to render view /WEB-INF/jsp/Search_view.jsp



      Additional item:
      web.xml:
      <?xml version="1.0" encoding="UTF-8"?>
      <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
       <context-param>
       <param-name>com.sun.faces.verifyObjects</param-name>
       <param-value>false</param-value>
       </context-param>
       <context-param>
       <param-name>com.sun.faces.validateXml</param-name>
       <param-value>true</param-value>
       </context-param>
       <context-param>
       <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
       <param-value>client</param-value>
       </context-param>
       <context-param>
       <param-name>javax.faces.application.CONFIG_FILES</param-name>
       <param-value>/WEB-INF/faces-config.xml</param-value>
       </context-param>
       <servlet>
       <servlet-name>Faces Servlet</servlet-name>
       <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
       <load-on-startup>1</load-on-startup>
       </servlet>
       <servlet>
       <servlet-name>ThemeServlet</servlet-name>
       <servlet-class>com.sun.webui.theme.ThemeServlet</servlet-class>
       <load-on-startup>2</load-on-startup>
       </servlet>
       <servlet-mapping>
       <servlet-name>ThemeServlet</servlet-name>
       <url-pattern>/theme/*</url-pattern>
       </servlet-mapping>
       <servlet-mapping>
       <servlet-name>Faces Servlet</servlet-name>
       <url-pattern>/faces/*</url-pattern>
       </servlet-mapping>
       <session-config>
       <session-timeout>
       30
       </session-timeout>
       </session-config>
       <welcome-file-list>
       <welcome-file>faces/welcomeJSF.jsp</welcome-file>
       </welcome-file-list>
       </web-app>


      portlet.xml:
      <?xml version="1.0" encoding="UTF-8"?>
      <portlet-app xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd" version="1.0">
      
       <portlet>
       <description>Search</description>
       <portlet-name>Search</portlet-name>
       <display-name>Search</display-name>
       <!-- You must use this Portlet implementation class -->
       <portlet-class>com.sun.faces.portlet.FacesPortlet</portlet-class>
       <!-- This is a required parameter and must point to the first page of the JSF Application -->
       <init-param>
       <description>Portlet init view page</description>
       <name>com.sun.faces.portlet.INIT_VIEW</name>
       <value>/WEB-INF/jsp/Search_view.jsp</value>
       </init-param>
       <init-param>
       <description>Portlet init edit page</description>
       <name>com.sun.faces.portlet.INIT_EDIT</name>
       <value>/WEB-INF/jsp/Search_edit.jsp</value>
       </init-param>
       <init-param>
       <description>Portlet init help page</description>
       <name>com.sun.faces.portlet.INIT_HELP</name>
       <value>/WEB-INF/jsp/Search_help.jsp</value>
       </init-param>
       <expiration-cache>0</expiration-cache>
       <supports>
       <mime-type>text/html</mime-type>
       <portlet-mode>VIEW</portlet-mode>
       <portlet-mode>EDIT</portlet-mode>
       <portlet-mode>HELP</portlet-mode>
       </supports>
       <portlet-info>
       <title>Search</title>
       <short-title>Search</short-title>
       </portlet-info>
       </portlet>
      </portlet-app>


      jars bundled in war file:
      appbase.jar
      commons-fileupload.jar
      dataprovider.jar
      dojo-0.4.3-ajax.jar
      jsfcl.jar
      jsf-extentions-common-0.1.jar
      jsf-extentions-dynamic-faces-0.1.jar
      jsf-portlet.jar
      json.jar
      prototype-1.5.0.jar
      webui-jsf.jar

      Questions:
      1. How do I add support for woodstock in my portlet? (am I doing it correctly?)
      2. How do I use a woodstock component correctly in my portlet jsp's?

      Many thanks in advance:)


        1 2 Previous Next