无法从javascript调用applet方法.日志中显示错误
- > liveconnect:Security Exception:来自http:url:port/application的JavaScript试图访问它没有权限的资源.
Manifest-Version: 1.0 Application-Name: application Created-By: Apache Maven 3.0.4 Caller-Allowable-Codebase: * Application-Library-Allowable-Codebase: * Build-Jdk: 1.7.0_72 Permissions: all-permissions Codebase: *
java安全设置设置为meddium
JRE版本1.8.0_25-b17
Applet由受信任的源签名,applet jar从与调用页面相同的域下载.
如果我尝试从firebug javascript控制台调用applet方法,则会显示另一个错误:错误:此JVM实例中不允许对Applet ID 4进行Liveconnect调用
小程序标签:
编辑:@Seba JDK-8058697是一个与此问题相关的OpenJDK错误,遗憾的是我无法访问它 - 你可以看到它的副本:这里
编辑2:Java 8更新40再次工作
今天我在Ubuntu 14.10,Firefox 35.0.1和Oracle Java JRE 1.8.0_31上遇到了这个问题.它在某种程度上与deploy.jar中的JRE实用程序类相关,后者在Linux上无法正常工作(NativeMixedCodeDialog).在Windows上,当您尝试访问Liveconnect(这意味着MIXED安全模式)时,此类会显示一个对话框,请您确认.出于某些未知原因,这不会发生在Linux上.
您可以通过运行此命令轻松尝试检查:
/usr/lib/jvm/java-8-oracle/jre/bin/java -cp /usr/lib/jvm/java-8-oracle/jre/lib/deploy.jar com.sun.deploy.uitoolkit.ui.NativeMixedCodeDialog "Some Aplet" "Web Site:" "https://localhost" "Publisher:" "Some publisher" "Do not show this again for this app and web site."
我的解决方案是使用部署规则集来强制Java信任我的应用程序.
这可能不适合生产使用,但它让我进一步发展,直到它NativeMixedCodeDialog
得到修复.
所以直截了当:
创建名为ruleset.xml的文件
根据此文档填写内容,例如.
<?xml version="1.0" encoding="UTF-8"?> <ruleset version="1.0+"> <rule> <id location="https://localhost/" /> <action permission="run" version="SECURE" /> </rule> </ruleset>
把它放进罐子里
jar cvf DeploymentRuleSet.jar ruleset.xml
签署此证书有效的证书cacerts
,它可能是自签名证书,但它需要在java cacert文件中找到,而不仅仅是在控制面板中受信任
jarsigner -verbose -keystore ~/selfsigned.p12 -storetype pkcs12 DeploymentRuleSet.jar selfsigned
将签名的jar复制到 /etc/.java/deployment/
可能重新启动浏览器一切都应该正常工作