“当前请求不是Portlet请求”错误使用Spring 3.0.5和AOP与请求范围豆WebLogi

2019-09-29 06:59发布

有没有人看到并解决这个错误?

Caused by: java.lang.IllegalStateException: Current request is not a portlet request            at org.springframework.web.portlet.context.PortletApplicationContextUtils.currentRequestAttributes(PortletApplicationContextUtils.java:194)
        at org.springframework.web.portlet.context.PortletApplicationContextUtils.access$0(PortletApplicationContextUtils.java:191)
        at org.springframework.web.portlet.context.PortletApplicationContextUtils$WebRequestObjectFactory.getObject(PortletApplicationContextUtils.java:238)
        at org.springframework.web.portlet.context.PortletApplicationContextUtils$WebRequestObjectFactory.getObject(PortletApplicationContextUtils.java:1)
        at org.springframework.beans.factory.support.AutowireUtils$ObjectFactoryDelegatingInvocationHandler.invoke(AutowireUtils.java:178)
        at $Proxy866.getAttribute(Unknown Source)
        at org.ihc.mh.proxy.portlet.factory.PortletProxyInfoFactory$PortletSessionScope.getAttribute(PortletProxyInfoFactory.java:198)
        at org.ihc.mh.proxy.portlet.factory.PortletProxyInfoFactory$ProxyInfoImpl.getUnitNumber(PortletProxyInfoFactory.java:52)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
        at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
        at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
        at $Proxy790.getUnitNumber(Unknown Source)
        at org.ihc.mh.proxy.service.focus.impl.FocusServiceImpl.getFocusPerson(FocusServiceImpl.java:95)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:145)

所述豆是使用“请求”范围和AOP等规定:

<bean id="focusPerson" scope="request" factory-bean="dataViewFocusService" factory-method="getFocusPerson">
   <constructor-arg ref="proxyInfo" />
   <aop:scoped-proxy proxy-target-class="false" />
</bean>

然而,当我的陷阱调用设置在调试器中请求属性,似乎我预计是未来从的WebLogic,而不是春:

  [1] org.springframework.web.context.request.RequestContextHolder.setRequestAttributes (RequestContextHolder.java:84)
  [2] org.springframework.web.context.request.RequestContextHolder.setRequestAttributes (RequestContextHolder.java:73)
  [3] org.springframework.web.context.request.RequestContextListener.requestInitialized (RequestContextListener.java:61)
  [4] com.liferay.portal.kernel.servlet.SecurePluginContextListener.requestInitialized (SecurePluginContextListener.java:189)
  [5] weblogic.servlet.internal.EventsManager.notifyRequestLifetimeEvent (EventsManager.java:333)
  [6] weblogic.servlet.internal.RequestEventsFilter.doFilter (RequestEventsFilter.java:25)
  [7] weblogic.servlet.internal.FilterChainImpl.doFilter (FilterChainImpl.java:56)
  [8] weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet (RequestDispatcherImpl.java:524)
  [9] weblogic.servlet.internal.RequestDispatcherImpl.include (RequestDispatcherImpl.java:444)
  [10] com.liferay.portlet.InvokerPortletImpl.invoke (InvokerPortletImpl.java:602)
  [11] com.liferay.portlet.InvokerPortletImpl.invokeRender (InvokerPortletImpl.java:675)
  [12] com.liferay.portlet.InvokerPortletImpl.render (InvokerPortletImpl.java:382)
  [13] jsp_servlet._html._portal.__render_portlet._jspService (render_portlet.jsp:788)

这些已经Glassfish的下正常工作了一段时间。 在WebLogic上我们得到这个错误。 它看起来像和管理春天请求上下文在portlet的WebLogic之间的冲突,但我不知道如何解决它。

谢谢

文章来源: “Current request is not a portlet request” error running Liferay portlets on WebLogic using Spring 3.0.5 and aop with a request scope bean