簡體   English   中英

我有這段代碼,但運行時遇到異常

[英]I have this code but when I run it I get an exception

我有以下代碼,但是在運行它時出現異常:

java.security.AccessControlException:訪問被拒絕(java.net.SocketPermission 127.0.0.1:8081 connect,resolve)

這是代碼,服務器運行良好,但是客戶端無法正常工作。

<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
    width="615" height="360" 
    codebase="http://java.sun.com/products/plugin/autodl/jinstall-1_4-windows-i586.cab#Version=1,4,0,mn">
  <PARAM name="code" value="client/LlamaChat.class">
  <PARAM name="archive" value="LlamaChat.jar">
  <PARAM name="type" value="application/x-java-applet;version=1.4">
  <PARAM name="scriptable" value="true">
  <PARAM name="username" value="[replace with username]">
  <PARAM name="port" value="[replace with port]">
<COMMENT>
<EMBED type="application/x-java-applet;version=1.4" 
   width="615" height="360" 
   code="client/LlamaChat.class" archive="LlamaChat.jar"
   pluginspage="http://java.sun.com/j2se/1.4.1/download.html"
 username="nis"
 port="8081"
    <NOEMBED>
        No Java 1.4 plugin
    </NOEMBED></EMBED>
</COMMENT>
     </OBJECT>

這是所有錯誤消息:

java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:8081 connect,resolve)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkConnect(Unknown Source)
at sun.plugin2.applet.Applet2SecurityManager.checkConnect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.<init>(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketFactoryImpl.createSocket(Unknown Source)
at client.ServerConnection.<init>(Unknown Source)
at client.LlamaChat.connect(Unknown Source)
at client.LlamaChat.init(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

有什么問題,我該如何解決?

我使用的端口是8081。

這實際上是一個第三方小程序。 簽署是該第三方的責任。 但是,我也不確定這是否是由於未簽名引起的,在執行小程序之前會給出一般錯誤/警告。 該異常可能還有其他原因,例如錯誤的用戶名,端口或配置。 我只想再一次查閱文檔,如果沒有用,請向負責的供應商報告。

小程序本身看起來也很古老。 針對老式Java 1.4,最后一次更新是在2500天之前。 HTML示例還包含一個已棄用的<embed>元素。 我懷疑供應商是否會響應支持請求。 我會找一個更新的 我不推薦直接使用它(我從未使用過它們),但是我建議您注意維護歷史記錄,最新發布日期和可用的文檔(如何配置/使用它等等)。

小程序有某些事情可以做,不能做。 簽名的applet可以執行您授予它們的權限的所有操作,或者您必須顯式授予applet(或更具體地說是主機)的權限才能執行某些操作。 打開端口(這是我假設您要在applet代碼中嘗試做的事情),是applet需要獲得權限才能執行的操作之一。

最好的辦法是在小程序所在的罐子上簽名,然后瀏覽器會提示您要允許的內容。

您是否正在運行匹配的服務器?

如果您使用的是這樣的示例,請檢查您是否正確輸入了用戶名,端口,站點和位置-在鏈接和代碼中,用戶名設置了兩次,而站點沒有設置。 端口設置為[replace with port]不正確,主機名首先設置為[replace with username] ,也不正確。

我懷疑第二次設置用戶名是應該設置服務器名的位置,但是我對此小程序一無所知。 嘗試使用此代碼,但首先替換[square brackets]中的所有4個值:

<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
    width="615" height="360" 
    codebase="http://java.sun.com/products/plugin/autodl/jinstall-1_4-windows-i586.cab#Version=1,4,0,mn">
  <PARAM name="code" value="client/LlamaChat.class">
  <PARAM name="archive" value="LlamaChat.jar">
  <PARAM name="type" value="application/x-java-applet;version=1.4">
  <PARAM name="scriptable" value="true">
  <PARAM name="username" value="[replace with username]">
  <PARAM name="port" value="[replace with port]">
<COMMENT>
<EMBED type="application/x-java-applet;version=1.4" 
   width="615" height="360" 
   code="client/LlamaChat.class" archive="LlamaChat.jar"
   pluginspage="http://java.sun.com/j2se/1.4.1/download.html"
 site="[replace with site]"
 port="[replace with port]"
    <NOEMBED>
        No Java 1.4 plugin
    </NOEMBED></EMBED>
</COMMENT>
     </OBJECT>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM