【问题标题】:primefaces push not working in Safari using AWS Tomcat7primefaces push 在使用 AWS Tomcat7 的 Safari 中不起作用
【发布时间】:2015-07-27 07:32:09
【问题描述】:

我正在使用 PrimeFaces 5.1、JSF 2.1 和 tomcat 7,并且我的应用程序在 AWS 中。大气版本 2.2.2。

我无法在 Safari 5.1.7 中使用推送功能。

我们已将 AWS 配置为启用基于 Primeface push with AWSWebsocket with Tomcat 7 on AWS Elastic BeanstalkCreation of .ebextensions folder in aws elastic beanstalk 的推送。

Push 在所有其他浏览器中都能正常工作。

我尝试了primepush on Tomcat 7 not working 提供的解决方案,但不成功。

Safari 控制台显示

任何帮助表示赞赏..

更新 1:一种选择是在检测到 safari 浏览器时尝试非安全 websockets(来自http://blog.marcon.me/post/24874118286/secure-websockets-safari)。如果是这样,问题是如何让primefaces的push选择非安全的web socket?

更新 2:尝试实施 SSL 以查看是否由于我们的自签名证书而无法在 Safari 中进行推送。这似乎也不起作用。

【问题讨论】:

    标签: tomcat primefaces safari websocket push


    【解决方案1】:

    Safari 5.1.7 已经很老了……这里https://github.com/Atmosphere/atmosphere/wiki/Safari-and-WebSockets-Issues 记录了 5.1.5 存在问题。我不认为从 .5 到 .7 有修复。

    【讨论】:

    • 但是对于windows os,他们没有提供任何其他更高版本的Safari..
    • 我知道,对我来说是 safari for windows like internet explorer
    【解决方案2】:

    由于缺少 web.xml 配置而发生此问题。 分析tomcat的日志(catalina.out),发现Safari尝试连接tomcat时出错,ERROR org.atmosphere.cpr.AsynchronousProcessor - Invalid request state. AsyncContext#startAsync not supported.

    在搜索此错误时,从https://groups.google.com/forum/#!topic/atmosphere-framework/D5-yrW6NzLU 找到了解决方案

    <async-supported>true</async-supported> 添加到 web.xml 中的 shiroFilter 中,如

     <filter>
            <filter-name>shiroFilter</filter-name>
            <filter-class>org.apache.shiro.web.servlet.ShiroFilter</filter-class>
            <async-supported>true</async-supported>
     </filter>
    

    使用这个,Safari 5.1.7 能够使用推送功能。

    希望这能帮助像它帮助我的其他人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      • 2016-02-26
      • 2018-10-14
      • 1970-01-01
      • 2017-10-13
      相关资源
      最近更新 更多