[开发] 请教:将ActionRequest对象转换成HttpServletRequest对象出错

lenceyq 2009-05-04

public void processAction(final PortletConfig config, final ActionRequest req,final ActionResponse res){
ActionRequestImpl reqImpl = (ActionRequestImpl)req;
HttpServletRequest httpReq = reqImpl.getHttpServletRequest();
}


在执行以上方法中第一行代码时报错,错误信息如下,请各位帮忙看看怎么解决。

java.lang.ClassCastException: com.liferay.portlet.ActionRequestImpl
        at com.flextao.cnm.web.configuration.SelfIntroduceConfigurationAction.uploadUserPhoto(SelfIntroduceCon
figurationAction.java:89)
        at com.flextao.cnm.web.configuration.SelfIntroduceConfigurationAction.doProcessAction(SelfIntroduceCon
figurationAction.java:33)
        at com.flextao.cnm.web.configuration.BaseConfigurationAction$1.execute(BaseConfigurationAction.java:41
)
        at com.flextao.kernel2.persist.hibernate.TransactionWrapper.withTransaction(TransactionWrapper.java:50
)
        at com.flextao.cnm.web.configuration.BaseConfigurationAction.processAction(BaseConfigurationAction.jav
a:39)
        at com.liferay.portlet.portletconfiguration.action.EditConfigurationAction.processAction(EditConfigura
tionAction.java:86)
        at com.liferay.portal.struts.PortletRequestProcessor.process(PortletRequestProcessor.java:177)
        at com.liferay.portlet.StrutsPortlet.processAction(StrutsPortlet.java:96)
        at com.liferay.portlet.CachePortlet._invoke(CachePortlet.java:432)
        at com.liferay.portlet.CachePortlet.processAction(CachePortlet.java:215)
        at com.liferay.portal.action.LayoutAction.processPortletRequest(LayoutAction.java:401)
        at com.liferay.portal.action.LayoutAction.processActionRequest(LayoutAction.java:317)
        at com.liferay.portal.action.LayoutAction.execute(LayoutAction.java:153)
        at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
        at com.liferay.portal.struts.PortalRequestProcessor.process(PortalRequestProcessor.java:158)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
        at com.liferay.portal.servlet.MainServlet.callParentService(MainServlet.java:401)
        at com.liferay.portal.servlet.MainServlet.service(MainServlet.java:630)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:98)
        at com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter.doFilter(VirtualHostFilter.java:14
9)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:98)
        at com.liferay.portal.servlet.filters.sessionid.SessionIdFilter.doFilter(SessionIdFilter.java:81)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:679)
        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461)
        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:399)
        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
        at com.liferay.portal.servlet.FriendlyURLServlet.service(FriendlyURLServlet.java:137)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:98)
        at com.liferay.filters.strip.StripFilter.doFilter(StripFilter.java:88)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:98)
        at com.liferay.filters.compression.CompressionFilter.doFilter(CompressionFilter.java:109)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:98)
        at com.liferay.filters.secure.SecureFilter.doFilter(SecureFilter.java:150)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:98)
        at com.liferay.filters.doubleclick.DoubleClickFilter.doFilter(DoubleClickFilter.java:132)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:98)
        at com.liferay.portal.servlet.filters.layoutcache.LayoutCacheFilter.doFilter(LayoutCacheFilter.java:19
0)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:98)
        at com.liferay.portal.servlet.filters.autologin.AutoLoginFilter.doFilter(AutoLoginFilter.java:108)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:98)
        at com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter.doFilter(VirtualHostFilter.java:17
3)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:98)
        at com.liferay.portal.servlet.filters.sessionid.SessionIdFilter.doFilter(SessionIdFilter.java:81)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
        at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BasePro
tocol.java:665)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
        at java.lang.Thread.run(Thread.java:595)
levin_yuu 2009-05-10
使用PortalUtil的getHttpServletRequest方法可从actionRequest中获取到httpServletRequest:

HttpServletRequest httpServletRequest = PortalUtil.getHttpServletRequest(actionRequest);

具体实现可参考PortalImpl.java中的 getHttpServletRequest(PortletRequest portletRequest)方法。
Global site tag (gtag.js) - Google Analytics