JSPとServletで作成された添付ファイル付きメールの送信プログラムがあります。以下にその一部を掲載します。
***** SendForm.jsp ******
<form action="test/servlet/SendMail">
<input type="submit" value="添付する">
</form>
*************************
***** SendMail.java *****
public void doGet( 略 ) throws 略
{
try
{
Properties props = System.getProperties();
props.put("mail.smtp.host", "xxx.xxx.xxx.xxx");
Session session = Session.getDefaultInstance(props, null);
MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress("test@test.co.jp", "テスト","iso-2022-jp"));
msg.setRecipients(Message.RecipientType.TO, "test@test.co.jp");
msg.setSubject("テストメール!" , "iso-2022-jp");
MimeBodyPart mbp1 = new MimeBodyPart();
mbp1.setText("これはテストメールです。" , "iso-2022-jp");
MimeBodyPart mbp2 = new MimeBodyPart();
FileDataSource fds = new FileDataSource("テスト.xls");
mbp2.setDataHandler(new DataHandler(fds));
mbp2.setFileName(MimeUtility.encodeWord(fds.getName()));
Multipart mp = new MimeMultipart();
mp.addBodyPart(mbp1);
mp.addBodyPart(mbp2);
msg.setContent(mp);
msg.setSentDate(new Date());
Transport.send(msg);
}
catch(Exception e)
{
( 略 )
}
}
*************************
字数が制限されていますので、関係ないところは( 略 )とさせていただいています。
SendForm.jspで「添付する」を押して添付ファイルの送信処理を開始すると、HTTPの501番エラーが発生して、ファイルを送信することができなくなってしまいます(例外は一切発生していません)。なぜ例外ではなく501番のエラーが発生するのでしょうか。
No.2ベストアンサー
- 回答日時:
JSPの方のformタグでmethodが指定されていないのでpostで送信されているんでしょう(それが仕様かどうかは知りませんが)。
で、postの処理が要求されているのにサーブレットにはdoGet(method=getの処理)しか実装されていないのでHTTP501(Not Implemented:未実装)エラーが返されると。参考URL:http://www.asahi-net.or.jp/~ax2s-kmtn/ref/status …
No.1
- 回答日時:
ファイルのアップロードするのであれば
MultipartとPOSTメソッドでsubmitする必要があったような気がします。
501エラーはサーバへ正常にリクエストが通っていないのではないのでしょうか?
サーブレットで一番最初に呼ばれるであろうメソッドまでたどりついていますか?
普通にサーブレットを使っているのであればdoGetメソッドが呼ばれていると思うのですが、直後にデバッグ文をいれてみてください。
そこまでたどり着いていないのであれば
JSPを見直す必要がありますね。
回答ありがとうございます。
字数制限の関係上ここでは書けなかったのですが、ファイルのアップロード処理はこのプログラムが実行される前に完了しています。ここでは単にボタンを押せば送信処理が開始されるプログラムが作りたかったので、doGetメソッドを使用しました。これがいけなかったのでしょうか。
>普通にサーブレットを使っているのであれば
>doGetメソッドが呼ばれていると思うのですが、
>直後にデバッグ文をいれてみてください。
>そこまでたどり着いていないのであれば
>JSPを見直す必要がありますね。
JSPは問題ないと思いますので、サーブレットの方をもう一度見直して見ます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- JavaScript javascriptで入力フォームが空欄の時にアラートによるエラーを出すコードを書いています。 2 2023/06/13 17:58
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「タイプ初期化子が例外をスロ...
-
0除算の例外処理ができない!!...
-
【JAVA】与えられた金額を貨幣...
-
C#の捕捉されない例外処理の対...
-
数字か文字列かを判定する関数
-
VB.Net Object型 空かどうか
-
文字列からダブルクオートの削除
-
VBA Evaluate関数 型が一致しま...
-
C# UriFormatExceptionの回避
-
WebClient()以外でネットにアク...
-
初回例外
-
WMIスクリプトを使用してMACア...
-
nullで、return出来るのはどん...
-
Timestamp型への変換について(J...
-
時間を表す文字列を時刻に変換
-
改行コード(\\n)を削除したい場合
-
例外処理throws
-
エクセルVBAで、条件に一致する...
-
変数名の付け方
-
mainメソッドのthrows節で設定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「タイプ初期化子が例外をスロ...
-
VB.Net Object型 空かどうか
-
文字列からダブルクオートの削除
-
連続する「\\」をひとつの「\\...
-
例外ってIf文の中に入れますか...
-
nullで、return出来るのはどん...
-
C#の捕捉されない例外処理の対...
-
0除算の例外処理ができない!!...
-
VB.NETで16進数が正しいかどう...
-
VBA 400エラー 1004エラー
-
Timestamp型への変換について(J...
-
VC++におけるCStringの変換
-
String型の日付(2005/11/25)の...
-
時間の取得
-
サーブレットからJSPの呼び出し...
-
アロー関数のIE対応にpolyfill...
-
【JAVA】与えられた金額を貨幣...
-
C# UriFormatExceptionの回避
-
WebClient()以外でネットにアク...
-
Excelでのエラー
おすすめ情報