Portlets broken in JBoss Portal 2.6.1 after migration from J
mat.lowery Aug 20, 2007 1:28 PMEnvironment
Download: JBoss Portal + JBoss AS bundle
JBoss Portal Version: 2.6.1
JBoss AS Version: 4.2.1
OS Platform: Ubuntu 7.04 Feisty Fawn
JRE: Sun 1.5.0_11-b03
Problem
After migrating from JBoss Portal 2.4.1-SP1 to 2.6.1, all pages containing my portlets throw the exception below. (These portlets worked in 2.4.1-SP1.)
Configuration
The configuration consists of a main WAR containing all business classes, portlet classes, and JBoss Portal descriptors. There is also a separate WAR containing artifacts for a custom portal theme.
I've tried creating portal pages containing only JBoss sample portlets. That works. I've tried creating portal pages containing only a trivial portlet (simply writes out a string). That does not work. (Note that the trivial implementation was within the main WAR and within my own Java package.) I've tried creating portal pages containing a mixture of JBoss samples and my own portlets and I get a partial rendering plus a stack trace.
The only thing I could get to work was a trivial portlet in its own WAR.
I've tried reducing my JBoss Portal descriptors to the bare minimum. Security constraints were removed but that didn't work. There is a jboss-web.xml. It originally contained a classloader instruction. Removing that had no effect. It currently only contains resource-refs.
It seems to be a class visibility problem however the stack trace doesn't back that up.
Any ideas?
Stack Trace
ERROR [PortalServlet] Unexpected exception org.hibernate.exception.GenericJDBCException: Cannot open connection at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103) at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29) at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:426) at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144) at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:139) at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1547) at org.hibernate.loader.Loader.doQuery(Loader.java:673) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236) at org.hibernate.loader.Loader.doList(Loader.java:2220) at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104) at org.hibernate.loader.Loader.list(Loader.java:2099) at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378) at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338) at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172) at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121) at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79) at org.hibernate.impl.AbstractQueryImpl.uniqueResult(AbstractQueryImpl.java:811) at org.jboss.portal.core.impl.model.portal.PersistentPortalObjectContainer.getObjectNodeNoCache(PersistentPortalObjectContainer.java:264) at org.jboss.portal.core.impl.model.portal.PersistentPortalObjectContainer.getObjectNode(PersistentPortalObjectContainer.java:281) 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:433) 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:157) 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:595) Caused by: org.jboss.util.NestedSQLException: Transaction is not active: tx=TransactionImple < ac, BasicAction: 7f000101:8539:46c9c401:39e status: ActionStatus.ABORT_ONLY >; - nested throwable: (javax.resource.ResourceException: Transaction is not active: tx=TransactionImple < ac, BasicAction: 7f000101:8539:46c9c401:39e status: ActionStatus.ABORT_ONLY >) at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:94) at org.hibernate.connection.DatasourceConnectionProvider.getConnection(DatasourceConnectionProvider.java:69) at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:423) ... 118 more Caused by: javax.resource.ResourceException: Transaction is not active: tx=TransactionImple < ac, BasicAction: 7f000101:8539:46c9c401:39e status: ActionStatus.ABORT_ONLY > at org.jboss.resource.connectionmanager.TxConnectionManager.getManagedConnection(TxConnectionManager.java:304) at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:396) at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:842) at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:88) ... 120 more
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 /opt/SUNWps/dtd/portlet.xsd" version="1.0"> <portlet> <portlet-name>ReportingExamplesPortlet</portlet-name> <portlet-class> org.pentaho.ui.portlet.NavigationPortlet </portlet-class> <supports> <mime-type>text/html</mime-type> <portlet-mode>VIEW</portlet-mode> </supports> <resource-bundle> org.pentaho.locale.portlet </resource-bundle> <portlet-info> <title>ReportingExamplesPortlet</title> </portlet-info> <portlet-preferences> <preference> <name>solution</name> <value>samples</value> </preference> <preference> <name>path</name> <value>reporting</value> </preference> <preference> <name>xsl</name> <value>portal-files.xsl</value> </preference> </portlet-preferences> </portlet> </portlet-app>
portlet-instances.xml
<?xml version="1.0" encoding="UTF-8"?> <deployments> <deployment> <if-exists>overwrite</if-exists> <instance> <instance-id>ReportingExamplesInstance</instance-id> <portlet-ref>ReportingExamplesPortlet</portlet-ref> </instance> </deployment> </deployments>
default-object.xml
<?xml version="1.0" encoding="UTF-8"?> <deployments> <deployment> <parent-ref>default</parent-ref> <if-exists>overwrite</if-exists> <page> <page-name>Pentaho</page-name> <window> <window-name>ReportingExamplesWindow</window-name> <instance-ref>ReportingExamplesInstance</instance-ref> <region>center</region> <height>0</height> </window> </page> </deployment> </deployments>