Hi
I'll try to write simple WSRP portlet application (my portlet container - OC4J). The ORM is realized by Hibernate. I have problems with lazy loading (collections are not initialize, I get error "session is closed").
I know, that this problem can be resolved by using PortletOpenSessionInViewInterceptor(my bean conf - under stack trace). I defined this bean, but I get very strange Exception in preHandle method:
06/08/24 15:52:14 spring: An internal error has occurred in method getMarkup()
javax.portlet.PortletException: Error occured during request processing: org.springframework.orm.hibernate3.support.Portlet OpenSessionInViewInterceptor.preHandle(Ljavax/portlet/PortletRequest;Ljavax/portlet/PortletResponse;Ljava/lang/ObjectZ
at org.springframework.web.portlet.DispatcherPortlet. doRenderService(DispatcherPortlet.java:745)
at org.springframework.web.portlet.FrameworkPortlet.p rocessRequest(FrameworkPortlet.java:420)
at org.springframework.web.portlet.FrameworkPortlet.d oDispatch(FrameworkPortlet.java:391)
at javax.portlet.GenericPortlet.render(Unknown Source)
at oracle.webdb.wsrp.server.Server.getMarkup(Unknown Source)
at oracle.webdb.wsrp.WSRP_v1_Markup_PortType_Tie.invo ke_getMarkup(WSRP_v1_Markup_PortType_Tie.java:224)
at oracle.webdb.wsrp.WSRP_v1_Markup_PortType_Tie.proc essingHook(WSRP_v1_Markup_PortType_Tie.java:499)
at com.sun.xml.rpc.server.StreamingHandler.handle(Str eamingHandler.java:230)
at com.sun.xml.rpc.server.http.ea.JAXRPCServletDelega te.doPost(JAXRPCServletDelegate.java:153)
at com.sun.xml.rpc.server.http.JAXRPCServlet.doPost(J AXRPCServlet.java:69)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:853)
at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.ResourceFilterChain.doFilter(Resource FilterChain.java:65)
at oracle.webdb.wsrp.server.ContextFilter.doFilter(Un known Source)
at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.ServletRequestDispatcher.invoke(Servl etRequestDispatcher.java:663)
at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.ServletRequestDispatcher.forwardInter nal(ServletRequestDispatcher.java:330)
at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.HttpRequestHandler.processRequest(Htt pRequestHandler.java:830)
at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.AJPRequestHandler.run(AJPRequestHandl er.java:224)
at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.AJPRequestHandler.run(AJPRequestHandl er.java:133)
at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].util.ReleasableResourcePooledExecutor$MyWorker.ru n(ReleasableResourcePooledExecutor.java:192)
at java.lang.Thread.run(Thread.java:534)
Caused by: java.lang.AbstractMethodError: org.springframework.orm.hibernate3.support.Portlet OpenSessionInViewInterceptor.preHandle(Ljavax/portlet/PortletRequest;Ljavax/portlet/PortletResponse;Ljava/lang/ObjectZ
at org.springframework.web.portlet.DispatcherPortlet. doRenderService(DispatcherPortlet.java:695)
... 20 more
This is my bean definition:
<bean name="openSessionInViewInterceptor" class="org.springframework.orm.hibernate3.support. PortletOpenSessionInViewInterceptor">
<property name="sessionFactory"><ref bean="sessionFactory"/></property>
</bean>
<bean id="portletModeParameterHandlerMapping" class="org.springframework.web.portlet.handler.Por tletModeParameterHandlerMapping">
<property name="interceptors">
<list><ref bean="openSessionInViewInterceptor"/></list>
</property>
<property name="portletModeParameterMap">
.............
</property>
</bean>
Thanks for your help
Best regards
mario


Z
Reply With Quote