测试未修改版本的JCTerm(终端模拟器,可以用作applet;我想使用applet功能),一切似乎在Eclipse的AppletViewer中正常工作,但在网页中测试生成的jar文件,所有选项都会显示一个带有闪烁黄色警告符号的消息框,并且不执行任何操作。某些选项显示“在此设置之前建立连接”错误。
我感兴趣的选项是“文件”菜单中的“打开SHELL会话...”。在尝试“打开SHELL会话...”选项时,applet的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/
答案 0 :(得分:1)
我是jcterm的作者。 http://wiredx.net/jcterm/处的jar文件已经过数字签名。 因此,如果您将这些文件复制并安装到您的Web服务器中,它将起作用。
答案 1 :(得分:0)
这看起来像是一个安全问题。
默认情况下,未签名的Java小程序只能在加载时连接到主机。此外,如果您要连接的主机允许使用它的crossdomain.xml文件,您还可以连接到其他主机。
从堆栈跟踪判断,您希望连接到没有HTTP服务器的主机,因此无法提供crossdomain.xml文件。出于这个原因,你在这里得到了这个例外。
有以下方法:
您链接的official WiredX sample applet使用最后一种方法,这就是为什么即使连接到您的服务器也能正常工作。