我开发了一个小程序,我发现了一个奇怪的行为。
这适用于基于GWT,Hibernate和Spring构建的基于安全性的应用程序。
applet主要访问浏览器证书并使用它来加密和解密数据。
它在所有系统上工作正常,但我不知道一台客户端机器我发现了一个奇怪的行为。
当我在Internet Explorer中登录时。小程序加载在以下点停止,然后自动关闭。
小程序控制台错误说:
基本:添加进度监听器:sun.plugin.util.GrayBoxPainter$GrayBoxProgressListener@337d0f
basic:为http://phil.etenders.in/securityApplet.jar调用的Plugin2ClassLoader.addURL父级 安全性:启用黑名单撤销检查 安全性:启用了受信任的库列表检查 network:找到缓存条目[url:http://phil.etenders.in/securityApplet.jar,version:null] prevalidated = false / 0
删除黑名单撤销检查和信任库检查,但没有任何影响。 (他们正好经过),
如果我从http://csis.pace.edu/~bergin/Java/applets.htm打开任何示例小程序 它停在下一行
basic: Plugin2ClassLoader.isTrustedByPolicy called
basic: Plugin2ClassLoader.isTrustedByPolicy returns false
所有三种浏览器的行为。
- Firefox和Chrome:根本不加载。
- IE:第一次加载点击刷新时不加载。
醇>
如果需要更多细节,请告诉我。 请参考here中的源代码。
答案 0 :(得分:1)
我在客户端计算机上升级了最新版本的java版本,它运行正常。
答案 1 :(得分:0)
它与网络拥塞有关。有时applet响应非常慢,因此您需要在系统中设置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
<强>更新强>
问题 - 当浏览器请求applet时,它会创建与系统JVM的通信。默认情况下,此通信的有效期为10秒。如果他们无法在给定的时间范围内进行通信,JVM会杀死该线程。这导致applet的异常行为。
解决方案 - 我们必须在系统中设置“环境变量”,其中applet未正确加载(一次安装)。它将在系统的JVM和浏览器的VM之间的其他单词“Hearbeat time”设置中删除10秒的响应时间。我们可以创建可执行文件来创建该系统环境变量。我们需要重新启动系统以确保JVM将使用此变量。
如何/在何处设置系统环境变量?
要设置系统环境变量,请按照以下步骤操作:
Step1 :打开计算机的属性
Step2 :在Windows 7中,您可以在左侧面板中找到“高级系统设置”,只需单击一下即可打开它。
第3步:如果您不在高级标签页中,请导航至“高级”标签。
Step4 :点击底部的“环境变量...”按钮,打开对话框。
Step5 :找到“系统变量”框架并创建新项目。
Step6 :提供变量名称为“JPI_PLUGIN2_NO_HEARTBEAT”(不带引号),变量值为“1”[1](不带引号)。
Step7 :点击确定
Step8 :点击确定
Step9 :点击确定
Step10 :现在重新启动系统。
您还可以使用答案中提供的链接...来获取Java错误解决方案..