3

几年前,我在 NetBeans 中编写了一个 Java Web Start 应用程序,它执行一个简单的文件上传任务。多年来,我一直将它作为一个自签名的小程序,但最终屈服并购买了签名证书。我现在已经全部签名了,但我遇到了一个新问题。

主要类的公共方法之一被 JavaScript 调用。但是,它似乎已经停止工作。当我尝试在 Firebug 中手动调用此方法时,我收到以下消息:

Error: Liveconnect call for Applet ID 8 is not allowed in this JVM instance.

更新:这是我在 Chrome 中尝试时得到的错误版本:

Error calling method on NPObject.

我已经在使用最新版本的 Java 插件 (7u51),那有什么用呢?这个小程序过去可以工作,但现在显然不再工作了。我需要在代码中添加一些特殊的东西吗?或者以 NetBeans 编译的方式更改设置?

4

1 回答 1

7

我想到了; 我发现一些论坛帖子提到我必须更新我的清单文件。显然,Oracle 最近改变了 Liveconnect 的工作方式,因此您必须明确允许可以调用小程序的子域。

相关信息在这里,基本上你必须将Caller-Allowable-Codebase指令添加到 Manifest 文件中。幸运的是,它可以设置为通配符,这就是我最终要做的。显然,您还应该Application-Name在清单文件中设置它,并且您特别不应该包含Trusted-Librarytrue。我真的不知道为什么或这样做,但我能够调整我的清单文件,一切似乎又能正常工作了!

于 2014-03-04T15:02:00.417 回答