0

我有一个 Java 小程序,它将与本地服务器建立 TCP 连接并获取一些数据。我对小程序进行了自签名,当我在 netbeans 中运行小程序时,它工作正常,但是当我尝试将小程序嵌入网页时,出现此错误:

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 生成的。

4

1 回答 1

1

我不太确定,因为我看不到整个图片及其所有细节,但正如我所看到的,这里提到了一个非常不寻常的例外,因为

受信任的加载程序试图从 file:/C:/Users/... 加载沙盒资源

我可能会建议您尝试加载,正如我所注意到的,两个罐子......

存档="lib1.jar, lib2.jar

所以

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

或者

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

或者

C) 仔细观察所有小程序对象的调用语法,尤其是在 JS 或 HTML 中

PS无论如何,要告诉更多,最好至少看到整个stackTrace及其“原因”

祝你好运

于 2011-08-12T00:22:55.607 回答