6

我开发了一个小程序,但我发现了一个奇怪的行为。

这是用于在 GWT、Hibernate 和 Spring 中构建的基于安全的应用程序。

该小程序主要是访问浏览器证书并使用它对数据进行加密和解密。

它在所有系统上都运行良好,但我不知道有一台客户端机器我发现了一个奇怪的行为。

当我登录 Internet Explorer 时。小程序加载在以下点停止,然后自动关闭。

小程序控制台错误提示:

基本:添加进度监听器:sun.plugin.util.GrayBoxPainter$GrayBoxProgressListener@337d0f

基本:为http://phil.etenders.in/securityApplet.jar调用的 Plugin2ClassLoader.addURL 父级 安全性:启用黑名单撤销检查 安全性:启用受信任库列表检查 网络:找到缓存条目 [url:http://phil. etenders.in/securityApplet.jar,版本:null] prevalidated=false/0

删除了黑名单撤销检查和受信任的库检查,但没有影响。(他们顺利通过),

如果我从http://csis.pace.edu/~bergin/Java/applets.htm打开任何示例小程序, ​​它将在以下行停止

    basic: Plugin2ClassLoader.isTrustedByPolicy called 
    basic: Plugin2ClassLoader.isTrustedByPolicy returns false 

所有三个浏览器上的行为。

  1. Firefox 和 Chrome:根本不加载。
  2. IE:点击刷新时第一次不加载。

如果需要更多细节,请告诉我。从这里参考源代码

4

2 回答 2

1

我在客户端机器上升级了最新版本的 java 版本,它工作正常。

于 2013-09-09T04:44:07.977 回答
0

它与网络拥塞有关。有时小程序响应非常慢,因此您需要JPI_PLUGIN2_NO_HEARTBEAT = 1在系统中设置环境变量。

说明:这将禁用在浏览器端 VM 和客户端 JVM 实例之间发送心跳消息。这让客户端 JVM 保持独立于浏览器端 VM。

根本原因解决方案的参考: https ://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Tivoli+Network+Manager/page/Browser+JRE

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6953754


更新:

问题- 当浏览器请求小程序时,它会创建与系统 JVM 的通信。默认情况下,此通信的有效期为 10 秒。如果它们在给定的时间范围内无法通信,JVM 会杀死该线程。这导致小程序的异常行为。

解决方案- 我们必须在小程序无法正确加载的系统中设置“环境变量”(一次性安装)。它将删除系统的 JVM 和浏览器的 VM 之间的 10 秒响应时间,也就是“心跳时间”设置。我们可以创建可执行文件来创建该系统环境变量。我们需要重新启动系统以确保 JVM 将使用此变量。

如何/在哪里设置系统环境变量?

要设置系统环境变量,请按照以下步骤操作:

Step1:打开我电脑的属性

Step2:在Windows 7中,您会在左侧面板中找到高级系统设置,一键打开它。

第 3 步:如果您不在高级选项卡中,请导航到高级选项卡。

Step4 : 点击底部的“环境变量...”按钮,打开对话框。

Step5:找到“系统变量”框架并创建新项目。

第6 步:提供变量名称为“JPI_PLUGIN2_NO_HEARTBEAT”(不带引号)和变量值为“1”[one](不带引号)。

第七步:点击确定

第八步:点击确定

第九步:点击确定

Step10:现在重新启动您的系统。

您还可以使用答案中提供的链接...用于 Java 错误解决方案..

于 2013-09-08T10:28:12.207 回答