使用Java 1.6.0.22我无法打开到localhost的套接字,applet是无符号的,正在从网络服务器加载http://localhost/myapplet
如果我从我的计算机ip 192.168.1.x加载它并打开一个套接字到该ip它可以工作
使用一个只打开套接字的简单演示,但是只要我的applet使用JavaScript到Java调用套接字就行不通。
如果我添加一个crossdomain.xml文件,套接字会再次运行。
如果我只允许127.0.0.1,它就不起作用
1.6.0.17可以正常使用
这与问题类似 Socket connection to originating server of an unsigned Java applet
但在我的情况下,我从网络服务器加载applet而不是从本地文件系统加载。
答案 0 :(得分:2)
通过这个有类似问题的用户,我找到了相关的oracle bug
access denied (java.net.SocketPermission 127.0.0.1:8080 connect,resolve)
http://www.oracle.com/technetwork/java/javase/6u22releasenotes-176121.html
答案 1 :(得分:0)
未签名的小程序只能打开与其加载的主机的连接。
答案 2 :(得分:0)
Oracle知道严重限制Applet使用的Java问题:Java运行时环境中的安全漏洞可能允许从本地文件系统加载的代码访问LocalHost。翻译:如果您希望运行与Tomcat等服务器通信的Java Applet,则无法使用最新的Java版本进行操作
他们的解决方案是:此问题没有解决方法。
他们知道这个问题多久了? 2008年12月3日,Bug Id 6704154
验证上述信息答案 3 :(得分:-1)
虽然文档说applet只能打开与它加载的主机的连接,但是使用Tomcat 5时,该语句不正确。我有一个小程序,总是生成一个,“AccessControlException:访问被拒绝(java.net.SocketPermission 66.167.210:80连接,解决”,即使我已经给这个URL的套接字权限。我仍然试图解决这个问题我愿意接受任何建议。