多年前,我在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编译的方式更改设置?
答案 0 :(得分:7)
我明白了;我发现一些论坛帖子提到我必须更新我的Manifest文件。显然,Oracle最近改变了Liveconnect的工作方式,因此您必须明确允许可以调用applet的子域。
关于它的信息是here,基本上你必须将Caller-Allowable-Codebase
指令添加到Manifest文件中。幸运的是,它可以设置为通配符,这是我最终做的。显然你也应该在清单文件中设置Application-Name
,并且你不应该包括Trusted-Library
为真。我真的不知道为什么或那是什么,但我能够调整我的清单文件,一切似乎再次起作用!