JSP:Session无法解析为某个类型

Jah*_*mic 0 java email session jsp tomcat

我已经接管了一些旧的遗留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
Run Code Online (Sandbox Code Playgroud)

等等

代码,样品取自某处(不漂亮......):

<%@ 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 = "sssssss@gmail.com";
String from = "admin@yyyyyy.com";
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>
Run Code Online (Sandbox Code Playgroud)

谷歌搜索表明实际邮件罐可能丢失,所以我下载javamail,解压缩罐子并将它们放入tomcat WEB-INF目录.没有变化.

这是一个带有CentOs(5.5?)的rackhostcloud设置.这是由旧团队配置的(早已不复存在).可以说,我不会被称为最好的Linux管理员,但基本命令行的东西没有问题.我可以运行yum得很好,但我认为此时还有更多内容.也许是一些Java配置?

我只想发一封简单的邮件......

任何建议,非常感谢.

Rya*_*art 5

邮件罐需要进入WEB-INF/lib,而不是WEB-INF.您需要重新启动应用程序或整个tomcat服务器才能使其生效.

根据您的描述,我猜你正在使用$ TOMCAT_HOME/webapps /中的爆炸webapp目录.首先要注意的是:如果目录旁边有一个.war,那么战争就是"真相的来源".战争是一种网络ARchive.它基本上是一个包含整个webapp目录的zip文件,而Tomcat为了性能目的提取该目录.这对你来说意味着无论你对目录做了什么,如果战争文件的时间戳以某种方式得到更新,它将把你对目录所做的所有更改都吹走,并再次用战争的内容替换它.

此后,为了使用邮件类,您需要的是一个文件结构,如:

$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
Run Code Online (Sandbox Code Playgroud)