可能相互关联或不相互关联的两部分问题。
我正在为 Win10 上的 Java 应用程序运行 Stackify Prefix v3.0.28,它通常似乎工作正常:我可以在我们的应用程序中看到各种操作的痕迹。
第1部分:
当导航到我们应用程序的任何页面时,我收到两个加载 JS 文件的失败请求:
http://127.0.0.1:2/scripts/sfclient.xhr.min.js
http://127.0.0.1:2/scripts/sfclient.perf.prefix.min.js
这两个请求都以 ERR_CONNECTION_REFUSED 失败。这些脚本引用不在我的 JSP 页面中,所以我假设它们是由 Prefix 注入的。
这是尝试加载 2 个脚本的原始 HTML:
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><script src="http://127.0.0.1:2/scripts/sfclient.xhr.min.js"></script>
<script>var SPerfLib = window.SPerfLib || {}; SPerfLib.RequestId = '54fd58d1-7f7e-d3a4-0001-331676a83598'; if(!SPerfLib.isAttached) { document.addEventListener('DOMContentLoaded', function() { var l = document.createElement('script'); l.src = 'http://127.0.0.1:2/scripts/sfclient.perf.prefix.min.js'; document.body.appendChild(l);}); SPerfLib.isAttached = true;}</script>
我曾尝试寻找配置选项,但没有找到。我不确定脚本是否应该是来自端口 2 的服务器。前缀跟踪输出来自端口 2012,这似乎是正确的。
我尝试卸载并重新安装 Prefix,但结果相同。似乎没有任何更高版本的 Prefix 可以尝试。
如何让这些脚本成功加载?
第2部分:
在一个特定页面上,我们有一个 XHR 来检索一些 JSON 数据。服务器正在正确返回数据,但它在到达浏览器之前以某种方式被删除。响应头显示状态 200 但 0 bytes content-length
,这会导致页面上的一些 JS 失败。如果我在没有前缀的情况下运行相同的东西,一切都会按预期工作 - 状态仍然是 200,但是content-length
是 37,并且 JSON 有效负载是可见的。
这是 Prefix 在播放时 XHR 的响应标头(注意content-length: 0
)
cache-control: no-cache, must-revalidate
content-language: en-US
content-length: 0
content-type: text/html
date: Mon, 31 Aug 2020 14:19:24 GMT
expires: Thu, 01 Jan 1970 00:00:00 GMT
last-modified: Mon, 31 Aug 2020 14:19:24 GMT
pragma: no-cache
server: WildFly/10
status: 200
x-powered-by: Undertow/1
x-powered-by: JSP/2.3
x-stackifyid: V1|8bbdce1c-a507-bbdc-0001-3378bff33740|
如果我从 JVM 选项中删除 Stackify 代理并禁用分析器,则响应标头如下所示:
cache-control: no-cache, must-revalidate
content-language: en-US
content-length: 37
content-type: text/html;charset=UTF-8
date: Mon, 31 Aug 2020 14:25:12 GMT
expires: Thu, 01 Jan 1970 00:00:00 GMT
last-modified: Mon, 31 Aug 2020 14:25:12 GMT
pragma: no-cache
server: WildFly/10
status: 200
x-powered-by: Undertow/1
我很感激任何建议!