rich:fileUpload无法通过HTTP / SSL上传/ Apache2 + AJP + Tomcat 6.0.24

时间:2013-03-01 22:16:34

标签: tomcat ssl richfaces

我目前无法在Chrome 25或IE 8中通过HTTPS工作rich:fileUpload。POST已发送,但从未收到回复。奇怪的是, 在Firefox 19中通过HTTPS工作。它在使用HTTP时也适用于所有浏览器。 HTTP和HTTPS请求都通过Apache httpd 2提供给Tomcat 6。

在查看挂起的HTTPS请求线程时,org.ajax4jsf.request.MultipartRequest会一直尝试读取第一个字节以外的内容,但永远不会成功。 (参见下面的堆栈跟踪。)

有人有任何建议吗?

注意:使用allowFlash(因为,它设置为false)

正在使用的版本:

  • Richfaces 3.3.1
  • Tomcat 6.0.24
  • AJP 1.3
  • Java 6
  • Apache 2正在运行mod_jk

来自调试器的堆栈跟踪:

  

守护程序线程[ajp-8009-5](暂停)
      ByteArrayOutputStream。(int)line:60
      MultipartRequest.readHeader()行:490       MultipartRequest.readNext()行:427
      MultipartRequest.getParam(String)行:807       MultipartRequest.getParameter(String)行:870       IdentityRequestWrapper(ServletRequestWrapper).getParameter(String)行:158
      RequestParameterMap.getAttribute(String)行:45
      RequestParameterMap.getAttribute(String)line:33
      RequestParameterMap(AbstractAttributeMap).containsKey(Object)行:59
      HtmlResponseStateManager.isPostback(FacesContext)行:212       DefaultRestoreViewSupport.isPostback(FacesContext)行:128
      RestoreViewExecutor.execute(FacesContext)行:80
      LifecycleImpl.executePhase(FacesContext,PhaseExecutor,PhaseListenerManager)行:103       LifecycleImpl.execute(FacesContext)行:76
      FacesServlet.service(ServletRequest,ServletResponse)行:151       ApplicationFilterChain.internalDoFilter(ServletRequest,ServletResponse)行:290
      ApplicationFilterChain.doFilter(ServletRequest,ServletResponse)行:206
      ExtensionsFilter.doFilter(ServletRequest,ServletResponse,FilterChain)行:190
      ApplicationFilterChain.internalDoFilter(ServletRequest,ServletResponse)行:235
      ApplicationFilterChain.doFilter(ServletRequest,ServletResponse)行:206
      CurrentlySelectedTabFilter.doFilter(ServletRequest,ServletResponse,FilterChain)行:42
      ApplicationFilterChain.internalDoFilter(ServletRequest,ServletResponse)行:235
      ApplicationFilterChain.doFilter(ServletRequest,ServletResponse)行:206
      PageLoadFilter.doFilter(ServletRequest,ServletResponse,FilterChain)行:58
      ApplicationFilterChain.internalDoFilter(ServletRequest,ServletResponse)行:235
      ApplicationFilterChain.doFilter(ServletRequest,ServletResponse)行:206
      TimeoutFilter.doFilter(ServletRequest,ServletResponse,FilterChain)行:45
      ApplicationFilterChain.internalDoFilter(ServletRequest,ServletResponse)行:235
      ApplicationFilterChain.doFilter(ServletRequest,ServletResponse)行:206
      ResourceTrackerFilter.doFilter(ServletRequest,ServletResponse,FilterChain)行:55
      ApplicationFilterChain.internalDoFilter(ServletRequest,ServletResponse)行:235
      ApplicationFilterChain.doFilter(ServletRequest,ServletResponse)行:206
      SeamFilter $ FilterChainImpl.doFilter(ServletRequest,ServletResponse)行:83
      IdentityFilter.doFilter(ServletRequest,ServletResponse,FilterChain)行:40
      SeamFilter $ FilterChainImpl.doFilter(ServletRequest,ServletResponse)行:69
      MultipartFilter.doFilter(ServletRequest,ServletResponse,FilterChain)行:90       SeamFilter $ FilterChainImpl.doFilter(ServletRequest,ServletResponse)行:69
      ExceptionFilter.doFilter(ServletRequest,ServletResponse,FilterChain)行:64       SeamFilter $ FilterChainImpl.doFilter(ServletRequest,ServletResponse)行:69
      RedirectFilter.doFilter(ServletRequest,ServletResponse,FilterChain)行:45
      SeamFilter $ FilterChainImpl.doFilter(ServletRequest,ServletResponse)行:69
      ConfigurableXMLFilter(BaseXMLFilter).doXmlFilter(FilterChain,HttpServletRequest,HttpServletResponse)行:178
      Filter(BaseFilter).handleRequest(HttpServletRequest,HttpServletResponse,FilterChain)行:290
      Filter(BaseFilter).processUploadsAndHandleRequest(HttpServletRequest,HttpServletResponse,FilterChain)行:347
      Filter(BaseFilter).doFilter(ServletRequest,ServletResponse,FilterChain)行:495       Ajax4jsfFilter.doFilter(ServletRequest,ServletResponse,FilterChain)行:56
      SeamFilter $ FilterChainImpl.doFilter(ServletRequest,ServletResponse)行:69
      SeamFilter.doFilter(ServletRequest,ServletResponse,FilterChain)行:158       ApplicationFilterChain.internalDoFilter(ServletRequest,ServletResponse)行:235
      ApplicationFilterChain.doFilter(ServletRequest,ServletResponse)行:206
      CharacterEncodingFilter.doFilterInternal(HttpServletRequest,HttpServletResponse,FilterChain)行:96       CharacterEncodingFilter(OncePerRequestFilter).doFilter(ServletRequest,ServletResponse,FilterChain)行:75
      ApplicationFilterChain.internalDoFilter(ServletRequest,ServletResponse)行:235
      ApplicationFilterChain.doFilter(ServletRequest,ServletResponse)行:206
      StandardWrapperValve.invoke(请求,响应)行:233
      StandardContextValve.invoke(Request,Response)行:191
      BasicAuthenticator(AuthenticatorBase).invoke(Request,Response)行:465
      StandardHostValve.invoke(请求,响应)行:127
      ErrorReportValve.invoke(请求,响应)行:102
      AccessLogValve.invoke(请求,响应)行:555
      StandardEngineValve.invoke(请求,响应)行:109       CoyoteAdapter.service(Request,Response)行:298
      AjpAprProcessor.process(long)行:429       AjpAprProtocol $ AjpConnectionHandler.process(long)行:384       AprEndpoint $ Worker.run()行:1555       Thread.run()行:662

2 个答案:

答案 0 :(得分:0)

不确定您是否使用“allowFlash”选项,但雷达上有以下错误。我们自己遇到了它。 https://issues.jboss.org/browse/RF-5624

答案 1 :(得分:0)

尝试将richfaces更新为3.3.4 (http://downloads.jboss.org/richfaces/releases/3.3.X/3.3.4.Final/richfaces-ui-3.3.4.Final-bin.zip)

我在使用Jboss 5.1.0GA和Seam 2.2.0GA的richfaces 3.3.1中遇到了这个问题。更新了richfaces,现在一切都按预期工作了!

希望有所帮助