3

私は自己署名した Java アプレットを持っています。このアプレットは、未処理の例外が発生するたびに電子メール メッセージを送信する必要があります。メールを送信しようとしているときに、アプレットが例外でクラッシュしました。電子メールの送信には、Java Mail API (javax.mail) を使用しました。

Java コンソールには、次のテキストが表示されます。

javax.mail.MessagingException: Could not connect to SMTP host: host.ru, port: 25;
 nested exception is:
java.net.SocketException: Permission denied: connect
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1972)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:642)
at javax.mail.Service.connect(Service.java:295)
at javax.mail.Service.connect(Service.java:176)
at javax.mail.Service.connect(Service.java:196)
at ru.gns.JBugMail.sendmail(JBugMail.java:52)
...
Caused by: java.net.SocketException: Permission denied: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:319)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:233)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1938)
... 42 more

説明してください、私が間違っていることは何ですか?

4

1 に答える 1

1

Java 1.6 バージョンで Eclipse からコードを実行している可能性があります。このコードをアプレットとして使用すると、Java プラグインは Java 1.7 で実行されますか?

この場合、このパラメーターをアプレット呼び出しに追加できます。

<PARAM name="java_arguments" value="-Djava.net.preferIPv4Stack=true">

deployJava.js を使用している場合:

<script src="https://www.java.com/js/deployJava.js"></script>
<script>
   var attributes = {...} ;
   var version = '1.7';
   var parameters = { java_arguments : '-Djava.net.preferIPv4Stack=true'...} ;
   deployJava.runApplet(attributes, parameters, version);
 </script>

JavaメールAPIを使用する場合、SMTPサーバーはWebサーバーと同じマシンに配置する必要があることに注意してください( http://www.oracle.com/technetwork/java/faq-135477.html#applets )

お役に立てれば、

于 2014-02-06T14:49:46.593 に答える