2011-05-21 61 views
0

測試未修改版本的JCTerm(終端仿真器,可用作applet;我想使用applet功能),一切似乎都是在Eclipse的AppletViewer中工作正常,但在網頁中測試生成的jar文件時,所有選項都會顯示帶有閃爍的黃色警告符號的消息框,並且不執行任何操作。某些選項顯示「在此設置之前建立連接」錯誤。測試JCTerm,java applet終端仿真器,在Eclipse中工作,但不在瀏覽器中工作

我有興趣使用的選項是從文件菜單中打開外殼會話。當嘗試'打開SHELL Session ...'選項時,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

這看起來像一個安全問題。

默認情況下,未加簽名的Java小程序只能連接到主機,如果從中加載。此外,如果要連接的主機允許使用crossdomain.xml文件,則還可以連接到其他主機。

從堆棧跟蹤判斷,您希望連接到沒有HTTP服務器的主機,因此無法提供crossdomain.xml文件。出於這個原因,你在這裏得到這個例外。

有這些方式出於此:

  • 把小程序要使用SSH後連接到同一臺服務器上。 (每個小程序都可以連接到它自己的主機。)
  • 讓SSH服務器具有帶有crossdomain.xml的最小Web服務器。 (crossdomain.xml必須允許小應用程序服務器的內容訪問此服務器。)
  • 對applet進行簽名(並讓用戶信任它)。 (簽名和可信的applet被允許做的一切。)

official WiredX sample applet您鏈接使用的最後一個方法,這就是爲什麼它連接到服務器時也可使用。

+1

是的,簽署jar文件解決了這個問題。我發現瞭解如何獲取數字簽名的jar文件的有用資源: [已簽名的Applet教程](http://www-personal.umich.edu/~lsiden/tutorials/signed-applet/signed-applet.html)和[The Java Tutorials:Understanding Signing and Verification](http://download.oracle.com/javase/tutorial/deployment/jar/intro.html)。 – slitomonous 2011-05-23 19:13:00

1

我是jcterm的作者。 http://wiredx.net/jcterm/的jar文件已經過數字簽名。 因此,如果您將這些文件複製並安裝到您的Web服務器中,它就會起作用。

相關問題