Hi Henry, the Hibernate Session in Honeycomb is per default configure as a "stateful" service to support session-per-conversation. That means, the service-model stores the Hibernate-Session into the conversation-context which is, in a Tapestry context, the Web-Session. A web session is, of course, not available in your initial load.
I'd suggest that you configure a different Hibernate SessionFactory and Session service (you can use the same SessionFactory-Config-Point to minimize redundancy) and use that one with your periodically triggered loading service. hth, Marcus > -----Original Message----- > From: Henry Tong [mailto:[EMAIL PROTECTED] > Sent: Wednesday, December 06, 2006 4:54 AM > To: [email protected] > Subject: Acquiring session not in a tapestry page error > > > Hi, > > Our team started a tapestry / honeycomb / hivemind / > hibernate web app project. A data upload service is needed to > load data to the database and therefore a hivemind eagerload > service is written to run this periodical task. As we want to > share the same honeycomb session factory, we inject hibernate > session to the service while the hibernate session is getted > from the honeycomb session factory. > > When we tries to save data to the database, the data is still > saved to the database but the following exception occurs: > Property 'webRequest' of <OuterProxy for > tapestry.globals.RequestGlobals( > org.apache.tapestry.services.RequestGlobals)> is null. > at > $WebRequest_10f5595850c._targetServiceProperty($WebRequest_10f 5595850c.java) > at $WebRequest_10f5595850c.getSession($WebRequest_10f5595850c.java) > at $WebRequest_10f559584c5.getSession($WebRequest_10f559584c5.java) > at org.apache.tapestry.engine.state.SessionScopeManager.getSession( > SessionScopeManager.java:48) > at org.apache.tapestry.engine.state.SessionScopeManager.get( > SessionScopeManager.java:64) > at > $StateObjectPersistenceManager_10f55958599.get($StateObjectPer sistenceManager_10f55958599.java) > at org.apache.tapestry.engine.state.StateObjectManagerImpl.get( > StateObjectManagerImpl.java:50) > at org.apache.tapestry.engine.state.ApplicationStateManagerImpl.get( > ApplicationStateManagerImpl.java:60) > at > $ApplicationStateManager_10f5595849d.get($ApplicationStateMana ger_10f5595849d.java) > at > $ApplicationStateManager_10f5595849e.get($ApplicationStateMana ger_10f5595849e.java) > at > com.javaforge.honeycomb.tapestry.ConversationManagerImpl.getCu > rrentConversation > (ConversationManagerImpl.java:59) > at > $ConversationManager_10f55958590.getCurrentConversation($Conve rsationManager_10f55958590.java) > at > $ConversationManager_10f55958589.getCurrentConversation($Conve rsationManager_10f55958589.java) > at > com.javaforge.honeycomb.tapestry.ConversationalClientStateStor > age.retrieve( > ConversationalClientStateStorage.java:26) > at > $ClientStateStorage_10f5595858b.retrieve($ClientStateStorage_1 0f5595858b.java) > at > com.javaforge.honeycomb.hivemind.statefulservice.StatefulServi > ceModel.getServiceFromClientStateStorage > (StatefulServiceModel.java:241) > at > com.javaforge.honeycomb.hivemind.statefulservice.StatefulServi > ceModel.obtainPooledService > (StatefulServiceModel.java:229) > at > com.javaforge.honeycomb.hivemind.statefulservice.StatefulServi > ceModel.getServiceImplementationForCurrentThread > (StatefulServiceModel.java:211) > at $Session_10f5595858d._service($Session_10f5595858d.java) > at $Session_10f5595858d.getSession($Session_10f5595858d.java) > at $Session_10f5595858e.getSession($Session_10f5595858e.java) > at $Session_10f5595858f.getSession($Session_10f5595858f.java) > at > com.javaforge.honeycomb.hibernate.audit.AuditInterceptor.getAu > ditSession( > AuditInterceptor.java:138) > at > com.javaforge.honeycomb.hibernate.audit.AuditInterceptor.befor > eTransactionCompletion > (AuditInterceptor.java:145) > at > $Interceptor_10f559585a6.beforeTransactionCompletion($Intercep > tor_10f559585a6.java) > at > $Interceptor_10f559585a7.beforeTransactionCompletion($Intercep > tor_10f559585a7.java) > at org.hibernate.impl.SessionImpl.beforeTransactionCompletion( > SessionImpl.java:396) > at org.hibernate.jdbc.JDBCContext.beforeTransactionCompletion( > JDBCContext.java:202) > at > org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java > :111) > at com.javaforge.honeycomb.service.AbstractPersistenceService.commit( > AbstractPersistenceService.java:61) > > As the data upload service is a hivemind service but not a > tapestry page, I do not have webRequest object. As Any suggestions? > > Henry > -- > View this message in context: > http://www.nabble.com/Acquiring-session-not-in-a-tapestry-page > -error-tf2765973.html#a7713160 > Sent from the Hivemind - User mailing list archive at Nabble.com. > >
