java – 我需要做些什么才能让LiveConnect再次运行?

几年前,我在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编译的方式更改设置?

解决方法:

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

关于它的信息是here,基本上你必须将Caller-Allowable-Codebase指令添加到Manifest文件.幸运的是,它可以设置为通配符,这是我最终做的.显然你也应该在清单文件中设置Application-Name以及它,特别是你不应该包括Trusted-Library true.我真的不知道为什么或那是什么,但我能够调整我的清单文件,一切似乎再次起作用!

上一篇:java – 带有jdbc applet的NoClassDefFoundError


下一篇:在空格上拆分字符串或仅划线. Java Applet