![](/img/trans.png)
[英]Java Applet works fine in Eclipse but in terminal(Appletviewer) not correctly
[英]Testing JCTerm, java applet terminal emulator, works in Eclipse, but not in browsers
测试未经修改的JCTerm版本(终端仿真程序,可以用作applet;我想使用applet功能),在Eclipse的AppletViewer中一切似乎都工作正常,但是在网页中测试生成的jar文件,所有选项显示带有闪烁的黄色警告符号的消息框,并且不执行任何操作。 某些选项显示“在此设置之前建立连接”错误。
我感兴趣的选项是“文件”菜单中的“打开外壳会话...”。 尝试使用“ Open SHELL Session ...”选项时,小程序的Java控制台会显示这些内容,这些内容似乎直接相关。 我不知道这是什么意思。
network: Connecting http://xxx.xx.xx.xxx/crossdomain.xml with proxy=DIRECT
network: Connecting http://xxx.xx.xx.xxx:80/ with proxy=DIRECT
java.security.PrivilegedActionException: java.net.ConnectException: Connection refused: connect
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.deploy.net.CrossDomainXML.check(Unknown Source)
at com.sun.deploy.net.CrossDomainXML.check(Unknown Source)
at sun.plugin2.applet.Applet2SecurityManager.checkConnect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at com.jcraft.jsch.Util$1.run(Util.java:354)
at java.lang.Thread.run(Unknown Source)
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at sun.net.NetworkClient.doConnect(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.<init>(Unknown Source)
at sun.net.www.http.HttpClient.New(Unknown Source)
at sun.net.www.http.HttpClient.New(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
at com.sun.deploy.net.CrossDomainXML$2.run(Unknown Source)
... 10 more
可在以下网址找到该程序正常运行的示例: http://wiredx.net/jcterm/
我是jcterm的作者。 http://wiredx.net/jcterm/上的jar文件已经过数字签名。 因此,如果将这些文件复制并安装到Web服务器中,它将可以正常工作。
这看起来像一个安全问题。
默认情况下,未签名的Java applet如果从加载,则只能连接到主机。 此外,如果您要连接的主机允许使用crossdomain.xml文件来实现此目的,那么您也可以连接到其他主机。
从堆栈跟踪来看,您想连接到没有HTTP服务器的主机,因此不能提供crossdomain.xml文件。 因此,您在这里遇到此异常。
有以下几种方法:
您链接的官方WiredX示例小程序使用了最后一种方法,这就是为什么即使连接到服务器也可以使用的原因。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.