在使用WildFly迁移到JDK10和JSF 2.3后,iOS和Mac OSX上的站点渲染中断



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

即使是未受影响的浏览器和系统组合(所有非苹果的东西(现在似乎加载得更快了。

遵循这篇文章中关于如何禁用HTTP/2:的说明

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

来自/jboss-cli.sh-cli刚才运行:

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

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

如果其他人遇到类似的错误,我将留下以下内容。

我更新了我的代码和POM文件,以使用基于WildFly 13 BOM POM和@Balusc JSF 2.3 Java EE 8启动示例应用程序的WildFly 13的Java EE 8依赖项。

所以我将其设置为使用:

  • JSF 2.3.5.最终版本
  • OmniFaces 3.1
  • PrimeFaces 6.2.7

在桌面上(所有带有所有最新浏览器的操作系统(,该网站100%工作,战争只需一半的时间即可部署。

然而,该网站无法在我的iPhone上正确渲染。我尝试了所有可以从应用商店安装的浏览器,看起来最接近正确的是Firefox。

然而,即使使用Firefox,我也无法通过登录屏幕。

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

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

任何关于寻找、添加或更改内容的建议都将不胜感激。

请参阅下面的日志文件信息:

仅从iOS/Mac OSX触发的初始错误是OmniFaces信息的UNDERTOW错误(我们使用TLS进行HTTPS,但在将所有操作转移到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

编辑:添加了指向UNDERTOW错误的日志文件信息,然后是大量PrimeFaces丢失的资源。

编辑2:

好的,我用测试了这个

服务器端:

  • CentOS 7.5全部更新
  • Oracle JDK 10.1
  • WildFly 13.0.0.最终
  • JSF 2.3.5.SP1
  • PrimeFaces 6.2.7
  • OmniFaces 3.1

以下设置完美地呈现了站点,在调试级别没有错误或警告:

  • CentOS GNOME 7.5 Chromium
  • CentOS GNOME 7.5 Firefox开发版
  • Windows 10 Chrome
  • Windows 10 Firefox开发版
  • 安卓工作室Nexus 5 AVD APK 28 Chrome
  • 三星Galaxy S7 Chrome
  • 三星Galaxy S7 Firefox

所有可从苹果应用商店安装的浏览器(包括Safari(都无法呈现网站。所有人都有UNDERTOW错误。

使用最新更新版本的Mac OSX进行测试,也因UNDERTOW错误而失败。

我用苹果公司记录了一份错误报告。然而,问题是,由于必须通过iPhone或iPad访问网络应用程序,大量用户受到了影响。

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

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

遵循这篇文章中关于如何禁用HTTP/2:的说明

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

来自/jboss-cli.sh-cli刚才运行:

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

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

最新更新