嵌入已签名的小程序

时间:2011-08-11 18:32:41

标签: tcp applet embed signed-applet

我有一个Java applet,它将与本地服务器建立TCP连接并获取一些数据。我自己签署了applet,当我在netbeans中运行applet时工作正常,但是当我尝试将applet嵌入到网页中时,我收到了这个错误:

java.lang.SecurityException: trusted loader attempted to load sandboxed resource from file:/C:/Users/...
    at com.sun.deploy.security.CPCallbackHandler$ParentCallback.check(Unknown Source)
    at com.sun.deploy.security.CPCallbackHandler$ParentCallback.access$1500(Unknown Source)
    at com.sun.deploy.security.CPCallbackHandler$ChildElement.checkResource(Unknown Source)
...

HTML

<APPLET codebase="classes" archive="lib1.jar, lib2.jar" code="test/Test.class" width=350 height=200></APPLET>

我猜测使用code属性会导致问题,因为只有jar文件被签名,而这些类文件是由netbeans生成的。

1 个答案:

答案 0 :(得分:1)

我不太确定,因为我无法看到所有细节的全貌,但正如我在这里看到的那样,提到了一个非常不寻常的例外

  

受信任的加载程序尝试从文件加载沙盒资源:/ C:/ Users /...

我可能会建议您尝试加载,因为我可以注意到,两个罐子......

  

archive =“lib1.jar,lib2.jar

所以

A)也许一个(或两个)罐子没有签名但确实包含“安全限制代码”,所以它仍然由applets的沙箱控制 我想你应该签署所有可能包含IO invokation的罐子

OR

B)你的jar位置为 文件:/ C:/ Users /... 因为文件而对applet非常不寻常协议......通常,所有的jar都应该从applet本机主机下载而不是本地文件系统......所以我建议你部署它然后再试一次。 ...让我们看看有什么变化

OR

C)仔细观察所有applet对象调用语法,尤其是JS或HTML

P.S。 无论如何,要告诉更多,最好至少看看整个stackTrace的“原因”

祝你好运