代码之家  ›  专栏  ›  技术社区  ›  Letholdrus

使用WildFly移动到JDK 10和JSF 2.3之后,iOS和Mac OSX上的站点呈现中断

  •  1
  • Letholdrus  · 技术社区  · 6 年前

    很好的一天

    通过禁用HTTP/2(同时仍保留HTTPS的TLS),WildFly 13解决了以下问题。

    即使是未受影响的浏览器和系统组合(所有非苹果产品)现在加载速度也快得多。

    按照本文中关于如何禁用HTTP/2的说明操作:

    https://developer.jboss.org/message/984394?et=watches.email.thread#984394

    从/jboss-cli.sh cli just run:

    /subsystem=undertow/server=default-server/https-listener=https:write-attribute(name=enable-http2,value=false)
    

    重新加载/重新启动服务器。所有设备都能完美快速地呈现。

    如果有人遇到类似的错误,我将离开下面的内容。

    我更新了我的代码和POM文件,以使用基于WielF飞13 BOM POM和@ BaluSJSF 2.3 JavaEE 8开机示例应用程序的FieldRead 13的JavaEE 8依赖关系。

    所以我把它设置为:

    • JSF 2.3.5.最终
    • 全方位3.1
    • 底面6.2.7

    在桌面上(所有操作系统都有最新的浏览器),该站点可以100%工作,战争在一半时间内就部署好了。

    然而,在我的iPhone上,该网站无法正确呈现。我尝试了所有可以从应用商店安装的浏览器,最接近正确的浏览器是火狐。

    然而,即使有了火狐,我也无法通过登录屏幕。

    在Android和所有非苹果产品上,该网站工作时没有任何错误日志。

    有人知道在基于苹果的产品上呈现JSF 2.3的问题吗?

    任何关于寻找、添加或更改内容的提示都将是最受欢迎的。

    日志文件信息如下:

    仅从iOS/Mac OSX触发的初始错误是Omnifaces信息下的一个错误(我们使用的是用于HTTPS的TLS,但在将所有内容移到JSF 2.3之前,所有内容都100%工作,日志中没有错误或警告)

    2018-07-30 09:09:18,741 ERROR [io.undertow] (default task-3078) UT005085: Connection io.undertow.server.protocol.http2.Http2ServerConnection@7e55834 for exchange HttpServerExchange{ GET /edsnext/javax.faces.resource/omnifaces.js.xhtml request {accept=[text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8], accept-language=[en-us], :authority=[edsnext.megchemsa.com:62543], accept-encoding=[gzip, deflate], :path=[/edsnext/javax.faces.resource/omnifaces.js.xhtml?ln=omnifaces&v=3.1], user-agent=[Mozilla/5.0 (iPhone; CPU iPhone OS 12_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1], :scheme=[https], cookie=[JSESSIONID=U5X9u-A83bccAnpA1XUnEFzmngqI9iDJwuIiU_Qo], :method=[GET], Referer=[https://edsnext.megchemsa.com:62543/edsnext/], upgrade-insecure-requests=[1], Host=[edsnext.megchemsa.com:62543]} response {Expires=[Mon, 30 Jul 2018 09:57:18 GMT], ETag=[W/"5933-1532705069245"], Last-Modified=[Fri, 27 Jul 2018 15:24:29 GMT], Set-Cookie=[JSESSIONID=U5X9u-A83bccAnpA1XUnEFzmngqI9iDJwuIiU_Qo.edsnext; path=/edsnext], Content-Type=[application/javascript], Date=[Mon, 30 Jul 2018 07:09:18 GMT], :status=[200]}} was not closed cleanly, forcibly closing connection
    

    然后,以下primefaces资源未找到警告(登录页面在iOS上呈现错误)

    2018-07-30 09:09:21,056 WARNING [javax.enterprise.resource.webcontainer.jsf.application] (default task-3091) JSF1064: Unable to find or serve resource, fa/fontawesome-webfont.eot, from library, primefaces.
    2018-07-30 09:09:21,056 WARNING [javax.enterprise.resource.webcontainer.jsf.application] (default task-3084) JSF1064: Unable to find or serve resource, fonts/lato-regular-webfont.svg, from library, primefaces-omega.
    2018-07-30 09:09:21,056 WARNING [javax.enterprise.resource.webcontainer.jsf.application] (default task-3082) JSF1064: Unable to find or serve resource, fa/fontawesome-webfont.ttf, from library, primefaces.
    2018-07-30 09:09:21,056 WARNING [javax.enterprise.resource.webcontainer.jsf.application] (default task-3100) JSF1064: Unable to find or serve resource, fa/fontawesome-webfont.svg, from library, primefaces.
    2018-07-30 09:09:21,056 WARNING [javax.enterprise.resource.webcontainer.jsf.application] (default task-3103) JSF1064: Unable to find or serve resource, fonts/lato-bold-webfont.svg, from library, primefaces-omega.
    2018-07-30 09:09:21,056 WARNING [javax.enterprise.resource.webcontainer.jsf.application] (default task-3091) : java.nio.channels.ClosedChannelException
    

    编辑:添加的日志文件信息指向以下错误,后面是大量缺少资源的素面。

    编辑2:

    好的,我用以下方法测试了这个:

    服务器端:

    • Centos 7.5全部更新
    • Oracle JDK 10.1
    • Wildfly 13.0.0.决赛
    • JSF 2.3.5.SP1标准
    • 底面6.2.7
    • 全方位3.1

    以下设置将使站点在调试级别完全呈现为零错误或警告:

    • Centos GNOME 7.5铬
    • CentOS GNOME 7.5火狐开发者版
    • Windows 10 Chrome浏览器
    • Windows 10火狐开发者版
    • Android Studio Nexus 5 AVD APK 28铬
    • 三星Galaxy S7 Chrome
    • 三星Galaxy S7火狐

    所有可从苹果应用商店安装的浏览器(包括Safari)都无法呈现该站点。都有下流误差。

    使用Mac OSX测试-最新更新版本-也会因流下错误而失败。

    我和苹果一起记录了一个错误报告。但问题是,由于必须通过iPhone或iPad访问Web应用程序,大量用户受到影响。

    我还能做些什么来加快速度?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Letholdrus    6 年前

    要解决此错误,请使用以下命令禁用WildFly 13上的HTTP/2:

    按照本文中关于如何禁用HTTP/2的说明操作:

    https://developer.jboss.org/message/984394?et=watches.email.thread#984394

    从/jboss-cli.sh cli just run:

    /subsystem=undertow/server=default-server/https-listener=https:write-attribute(name=enable-http2,value=false)
    

    重新启动/重新加载服务器,一切正常。