2011-07-19 31 views
0

古いレガシーJSPコードを引き継いで、メールサポートを追加したかったのです。JSP:セッションをタイプに解決できません

Session cannot be resolved to a type 

An error occurred at line: 39 in the jsp file: /xxxxx/test.jsp 
Message cannot be resolved to a type 
MimeMessage cannot be resolved to a type 

など

コード、サンプルはどこかに(きれいではありません...)取り出さ:

<%@ page import="java.util.*" %> 
<%@ page import="javax.mail.*" %> 
<%@ page import="javax.mail.internet.*" %> 
<%@ page import="javax.activation.*" %> 

<%@ page session="true"%> 
<html> 
<head> 
<title>JSP JavaMail Example </title> 
</head> 
<body> 
<% 
String to = "[email protected]"; 
String from = "[email protected]"; 
String subject = "subject"; 
String messageText = "body"; 

Properties props = System.getProperties(); 
//props.put("mail.host", host); 
//props.put("mail.transport.protocol", "smtp"); 
Session mailSession = Session.getDefaultInstance(props, null); 

Message msg = new MimeMessage(mailSession); 
msg.setFrom(new InternetAddress(from)); 
InternetAddress[] address = {new InternetAddress(to)}; 
msg.setRecipients(Message.RecipientType.TO, address); 
msg.setSubject(subject); 
msg.setSentDate(new Date()); 
msg.setText(messageText); 

Transport.send(msg); 
%> 
</body> 
</html> 
私はエラーを取得するだけでなく、それは、次のような、とてもうまくいきませんでした

グーグルでは、実際のメールジャーが見つからない可能性があるので、javamailをダウンロードし、jarファイルを抽出してtomcat WEB-INFディレクトリに入れました。変更なし。

これは、CentOS(5.5?)を搭載したラックホストのセットアップです。これは古いチームによって構成されました(長く消えました)。私はLinuxの最高の管理者として知られるわけではありませんが、基本的なコマンドラインは問題ありません。私はyumをうまく実行することができますが、この時点ではこれ以上のことはあると思います。おそらくいくつかのJavaの設定?

私はただの簡単なメールを送信したいと思います...

何か提案があります。

答えて

5

メールジャーは、WEB-INF/libではなく、WEB-INFに入る必要があります。あなたはそれが有効にするには、アプリケーションまたはTomcatサーバー全体を再起動する必要があります。

あなたの説明から、$ TOMCAT_HOME/webapps /にある展開されたwebappディレクトリを使って作業していると思います。まず知っておくべきこと:ディレクトリの隣に.warがある場合、戦争は「真実の源」です。戦争はWeb ARchiveです。これは基本的にwebappディレクトリ全体を含むzipファイルであり、Tomcatはパフォーマンス目的のためにそのディレクトリを抽出します。つまり、ディレクトリに何をしていても、そのwarファイルのタイムスタンプが何らかの形で更新されると、ディレクトリに加えたすべての変更を吹き飛ばして、それを再びwarの内容に置き換えます。

は、今では後に、メール・クラスを使用するために必要があるのはすべてのようなファイル構造である:

$TOMCAT_HOME 
    bin 
    conf 
    lib 
    ... 
    webapps 
     <your app> 
      test.jsp (Can be in any directory under <your app> except WEB-INF) 
      WEB-INF 
       lib 
        mail.jar 
        activation.jar 
+0

私の編集ミスは、もともとはWEB-INF/libディレクトリにjarファイルを置いていました。再起動しました(実際には、サーバー全体が無意識のうちに少し歪んでいました!)が、その後は効果がありません。私は近くにいると思って、ちょっとばかげた何かをしただけです。 – Jahmic

+0

@Jahmic:私の答えにいくつかのメモを追加しました。あなたが持っているものと比較し、何か気づいたら見てください。 –

1

サーブレットに移動し、このコードを、あなたのIDEガイドがあなたの輸入を整理し、どのように提案してみましょうコンパイルの問題を修正してください。このコードには.jspの場所がありません

次に、WEB-INF/libに必要なすべてのjarが含まれているかどうかを再確認します。

2

私は同じ問題がありました。あなたのせいではありませんが、Tomcatのものです。 Tomcat6では、他のjarと同じようにWEB-INF/libフォルダに置くとmail.jarが正しく動作しません。 mail.jarをcommon libフォルダ(/ usr/share/tomcat6/lib)に入れ、WEB-INF/libフォルダ内のmail.jarを削除してTomcat6を再起動する必要があります。 tomcat6を使用した起動用のjarファイルは必要ありません。

他のアプリケーションサーバーは、WEB-INF/libにあるmail.jarでうまく動作する可能性があります。あるいは、すでに独自のメールライブラリが組み込まれている可能性があります。Tomcat6では、上記を行う必要があります。

+0

Tomcat6でこれがなぜ問題になるのでしょうか? –

関連する問題