Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JSP:无法将会话解析为类型_Java_Email_Jsp_Session_Tomcat - Fatal编程技术网

Java JSP:无法将会话解析为类型

Java JSP:无法将会话解析为类型,java,email,jsp,session,tomcat,Java,Email,Jsp,Session,Tomcat,我已经接管了一些旧的遗留JSP代码,并希望向其添加一些邮件支持。嗯,事情进展不太顺利,因为我遇到了一些错误,比如: 无法将会话解析为类型 jsp文件:/xxxxx/test.jsp的第39行出现错误 无法将消息解析为类型 MimeMessage无法解析为类型 等 代码,从不太漂亮的地方取的样本…: <%@ page import="java.util.*" %> <%@ page import="javax.mail.*" %> <%@ page import="j

我已经接管了一些旧的遗留JSP代码,并希望向其添加一些邮件支持。嗯,事情进展不太顺利,因为我遇到了一些错误,比如:

无法将会话解析为类型 jsp文件:/xxxxx/test.jsp的第39行出现错误 无法将消息解析为类型 MimeMessage无法解析为类型 等

代码,从不太漂亮的地方取的样本…:

<%@ 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>
Google指出实际的邮件jar可能丢失了,所以我下载了javamail,提取了jar,并将它们放在TomcatWEB-INF目录中。没有变化

这是CentOs 5.5的rackhostcloud设置吗?在上面。这是由早已消失的旧团队配置的。可以肯定地说,我不会被称为最优秀的Linux管理员,但基本的命令行内容没有问题。我可以很好地运行百胜,但我认为在这一点上还有更多。也许是一些Java配置

我只想发一封简单的邮件


任何建议,非常感谢。

邮箱需要以WEB-INF/lib格式,而不是WEB-INF格式。您需要重新启动应用程序或整个tomcat服务器才能生效

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

在此之后,使用mail类所需的只是一个文件结构,如:

$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

将此代码移动到Servlet,让IDE向导组织导入,并建议如何解决编译问题。此代码在.jsp中没有位置


然后,当然要仔细检查WEB-INF/lib是否包含所有必需的jar。

我也遇到了同样的问题。这不是你的错,是Tomcat的错。在Tomcat6上,如果像处理其他jar一样将mail.jar放在WEB-INF/lib文件夹中,它将无法正常工作。您必须将mail.jar放在公共lib文件夹/usr/share/tomcat6/lib中,去掉WEB-INF/lib文件夹中的mail.jar,重新启动tomcat6,它就会开始工作。tomcat6也不需要激活jar


其他应用程序服务器可能会很好地使用WEB-INF/lib中的mail.jar,或者更可能已经内置了自己的邮件库。使用Tomcat6,您必须执行上述操作。

实际上,我的编辑错误是,最初将JAR放在WEB-INF/lib目录中。实际上重新启动了,有点不小心整个服务器。。哎呀!但后来还是没有效果。我想我已经很接近了,只是做了点什么silly@Jahmic当前位置在我的答案中添加了一些注释。比较一下你所拥有的,看看你是否注意到了什么。你知道为什么这可能是Tomcat6的问题吗?