安全Java插件7u40不能在将页面留给另一个小程序后加载小程序
症状
我有一个在Tomcat上运行的web应用程序。 某些网页包含小程序,使用CA证书打包和签名,并在清单中请求“权限:所有权限”
我在客户端有最新的JRE 7u40。 当我使用小程序浏览页面时,它会在没有安全或其他警告的情况下成功加载。 当我离开此页面并在短时间内(少于60秒)返回此页面时,小程序无法加载。 如果我离开页面,那么等待java。exe和jp2launcher。exe退出,然后返回页面,小程序再次成功加载
此行为与JRE 7u25不同,JRE 7u25在所有情况下均成功加载小程序。 此问题可在配备IE 8的Windows 7上重现,也可在配备最新Chrome 30.0的Windows 7上重现。x、 十,。 我无法用IE 10在Windows 8上复制它
变通办法
我所知道的唯一的解决办法是系统。小程序中的exit()。destroy()带有单独的_jvm小程序参数。但我觉得这太残忍了。 你知道其他的解决方法吗强>
技术信息
首先,我在Java控制面板中打开跟踪。
其次,我打开浏览器jvm调试
JPI_PLUGIN2_DEBUG=1
JPI_PLUGIN2_VERBOSE=1
当我离开小程序页面时,我在小程序控制台中看到以下内容,因此我认为小程序已停止并被销毁
PluginMain: processing GetAppletMessage PluginMain: processing JavaObjectOpMessage LiveConnectSupport: HAS_FIELD_OR_METHOD "rf" network: Created version ID: 1.7.0.40 network: Created version ID: 1.7.0.25 LiveConnectSupport: HAS_FIELD_OR_METHOD "rf": returning result false PluginMain: processing JavaObjectOpMessage LiveConnectSupport: HAS_FIELD_OR_METHOD "onremove" network: Created version ID: 1.7.0.40 network: Created version ID: 1.7.0.25 LiveConnectSupport: HAS_FIELD_OR_METHOD "onremove": returning result false PluginMain: processing StopAppletMessage, applet ID 1 basic: Starting applet teardown basic: Finished applet teardown basic: Removed progress listener: sun.plugin.util.ProgressMonitorAdapter@1c24701 basic: PluginMain.unregisterApplet: 1 from mananger sun.plugin2.applet.Applet2Manager@6f403e Applet2Manager executing destroyTGAndAC() for entry http://host:80/AppName/applet/,myapplet.jar
当我在短时间(不到60秒)内重新访问页面时,我在与浏览器进程相关联的调试命令窗口中看到以下错误
Attempting to start applet
Exception in thread "Thread-0" java.lang.InternalError: Should not find a running JVM instance but no matching JRE platform at sun.plugin2.main.server.JVMManager.getBestJVMInstance(Unknown Source) at sun.plugin2.main.server.JVMManager.getOrCreateBestJVMInstance(Unknown Source) at sun.plugin2.main.server.JVMManager.startAppletImpl(Unknown Source) at sun.plugin2.main.server.JVMManager.startApplet(Unknown Source) at sun.plugin2.main.server.JVMManager.startApplet(Unknown Source) at sun.plugin2.main.server.IExplorerPlugin.maybeStartApplet(Unknown Source) at sun.plugin2.main.server.IExplorerPlugin.access$200(Unknown Source) at sun.plugin2.main.server.IExplorerPlugin$BackgroundStarter$1.run(Unknown Source) at sun.plugin2.main.server.IExplorerPlugin$1.run(Unknown Source)
# 1 楼答案
我发现了
这就足够了