Hey Marcus,
I haven't had a chance to check out the orchestra code, but I noticed
this was in a call to getInstance. It's possible that if the Orchestra
code is trying to pull the conversion Manager from the thread local that
this is the problem.
In a portal environment, Faces runs in a two-phased request. That is
there is an action followed by a render. There is no guarantee that the
ActionRequest and the RenderRequest will run on the same thread. This
means that if the conversion manager was set up on the Render Thread it
may not be available on the action thread.
The other thing that might cause this is if orchestra uses a filter.
Filters do not get run in a portal environment until way late in the
lifecycle and, only then, if they are set to run in an include.
I hope this helps you and some of the other Orchestra people figure out
your issue.
Scott
markus.g wrote:
Hi all,
currently we're prototyping a portlet application (liferay 4.33) with
orchestra , JPA (Hibernate) and myFaces 1.1.5. In a pure servlet container
(tomcat 5.5) everything works fine. In the portlet environment, the
conversation manager throws a NullPointerException.
Caused by: java.lang.NullPointerException
at
org.apache.myfaces.orchestra.conversation.ConversationManager.getInstance(ConversationManager.java:90)
at
org.apache.myfaces.orchestra.conversation.ConversationManager.getInstance(ConversationManager.java:76)
at
org.apache.myfaces.orchestra.conversation.spring.AbstractSpringOrchestraScope.getBean(AbstractSpringOrchestraScope.java:125)
at
org.apache.myfaces.orchestra.conversation.spring.AbstractSpringOrchestraScope.get(AbstractSpringOrchestraScope.java:117)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:285)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
at
org.springframework.aop.target.SimpleBeanTargetSource.getTarget(SimpleBeanTargetSource.java:33)
at
org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.getTarget(Cglib2AopProxy.java:661)
at
org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:611)
at
de.seat.mitarbeiterinfo.view.mitarbeiterlist$$EnhancerByCGLIB$$4f90561b.getMitarbeiterListModel(<generated>)
... 125 more
Has anybody a solution for this problem?
Is it actually possible to run orchestra in a portlet environment?
thanks,
Markus