我开发了一个小程序,我发现了一种奇怪的行为。
这是为了实现基于安全的应用程序,它构建在GWT、Hibernate和Spring中。
applet主要是访问浏览器证书,并使用它对数据进行加密和解密。
它在整个系统上运行良好,但我不知道一台客户端机器,我正在发现一种奇怪的行为。
当我登录到Internet时,。applet加载在以下点停止,然后自动关闭。
applet控制台中的错误:
basic:添加进度监听器: sun.plugin.util.GrayBoxPainter$GrayBoxProgressListener@337d0f basic: Plugin2ClassLoader.addURL父级调用http://phil.etenders.in/securityApplet.jar安全性:黑名单撤销检查启用安全性:可信库列表检查启用网络:缓存条目找到[url:http://phil.etenders.in/securityApplet.jar,version: null]预验证=false/0
删除了黑名单撤销、检查和可信库检查,但没有影响。(他们通过得很好),
如果我从http://csis.pace.edu/~bergin/Java/applets.htm打开任何样例applet,它就会停在下面的行中
basic: Plugin2ClassLoader.isTrustedByPolicy called
basic: Plugin2ClassLoader.isTrustedByPolicy returns false
三种浏览器上的行为.
如果需要更多细节请告诉我。参考来自的源代码这里。
发布于 2013-09-09 04:44:07
我在客户端机器上升级了最新版本的java版本,运行良好。
发布于 2013-09-08 10:28:12
它与网络拥塞有关。有时候applet响应非常慢,因此您需要在系统中设置JPI_PLUGIN2_NO_HEARTBEAT = 1
环境变量。
描述:这禁止在浏览器端VM和客户机JVM实例之间发送心跳消息。这使得客户机JVM与浏览器端VM保持独立。
id=6953754
更新:
问题--当浏览器请求applet时,它会创建与系统JVM的通信。默认情况下,此通信的有效性为10秒。如果它们不能在给定的时间范围内通信,JVM将杀死该线程。这会导致applet的异常行为。
解决方案-我们必须在系统中设置“环境变量”,其中applet没有正确加载(一次安装)。它将删除系统JVM和浏览器VM之间的10秒响应时间,即“心跳时间”设置。我们可以创建可执行文件来创建系统环境变量。我们需要重新启动系统,以确保JVM将使用此变量。
如何/在何处设置系统环境变量?
要设置系统环境变量,请执行以下步骤:
Step1:打开我的计算机的属性
Step2:在windows 7中,您可以在左侧面板中找到高级系统设置,单击就可以打开它。
Step3:如果您不在高级选项卡中,请导航到高级选项卡。
Step4:点击“环境变量.”按钮在底部,它将打开对话框。
Step5:查找“系统变量”框架并创建新项。
Step6:提供变量名为"JPI_PLUGIN2_NO_HEARTBEAT“(不带引号),变量值作为"1”一。
Step7:单击Ok
Step8:单击Ok
Step9:单击Ok
Step10:现在重新启动您的系统。
你也可以使用答案中提供的链接.对于Java bug解决方案。
https://stackoverflow.com/questions/18525908
复制相似问题