5

サーバーにテキストファイルを保存する必要があるアプレットを開発しています。しばらくこの問題に取り組んだ後、私はftp接続を使用してファイルを送信できるLynlin.classでインターネットに出くわしました。C:\ Program Files \ Java \ jre7 \ lib \ security \ java.policyファイルに次の行を追加すれば、これは問題なく機能します。

permission java.net.SocketPermission "192.168.33.15:*", "connect, accept ,resolve, listen";

java.policyファイルが編集されていないコンピューターからこのアプレットを実行しようとすると、次のエラーが発生します。

java.security.AccessControlException: access denied 
    ("java.net.SocketPermission" "192.168.33.15:21" "connect,resolve")*

このアプレットを使用するすべてのコンピューターでjava.policyファイルを編集する以外に、この問題をどのように取り除くことができるかを誰かが知っていますか?

明確にするために:

  • 現在、私のアプレットは署名されていませんが、ファイルを送信しようとするサーバーは、アプレットが配置されているサーバーと同じです。

  • httpおよびftpサーバーは、Windows Server 2003(ip 192.168.33.15)で実行されているMicrosoftIISです。

4

3 に答える 3

2

正確なURLは「\pwaidc9..。

それはURLではありません。これは、WindowsUNCファイル名です。TCPホストではなく、ファイルシステムからアプレットをダウンロードしたため、ソケットを使用してアプレットに接続することはできません。

アプレットに署名します。

于 2012-09-06T14:05:14.120 に答える
1

EJPがほのめかしているように、アプレットを配信するアドレスとサーバーのアドレスは、アプレットを実行しているJREとは異なるようです。

http://..サーバー(アドレス)を介してHTMLにアクセスする必要があります。

于 2012-09-07T09:44:05.500 に答える
-1

クライアントマシン環境でそのようなアクティビティを許可する明示的な権限がなければ、アプレットがネットワーク接続を行う方法はありません。これは、クライアントマシンのセキュリティのためです。デフォルトでは、すべてのアプレットは制限されたサンドボックス環境で実行されます。

于 2012-09-06T11:41:44.133 に答える