1

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

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)

bean 是使用“请求”范围和 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 而不是我预期的 Spring:

  [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 上,我们收到此错误。在管理 Spring 请求上下文时,它看起来像 WebLogic 和 portlet 之间的冲突,但我不知道如何解决它。

谢谢

4

0 回答 0