JSP: Session ne peut pas être résolu à un type
J'ai pris plus de quelques vieux héritage de code JSP et je voulais ajouter un peu de mail de soutien pour elle. Eh bien, ça ne va pas si bien, que j'ai des erreurs, telles que:
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
etc
le code de l'échantillon, la prise quelque part (pas assez...):
<%@ 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>
Googler indiqué le courrier réel pots peuvent être manquantes, j'ai donc télécharger javamail, extrait les pots et les mettre dans le tomcat répertoire WEB-INF. Sans un changement.
Ce un rackhostcloud installation de CentOs (5.5?) sur elle. Cela a été configuré par l'ancienne équipe (disparu depuis longtemps). Coffre-fort-à-dire, je ne vais pas être connu comme le meilleur Linux admin autour, mais la ligne de commande de base stuff n'est pas un problème. Je peux courir yum
très bien, mais je pense qu'il est plus alors à ce point. Peut-être certaines Java config?
Je veux juste envoyer un simple mail...
Des suggestions, beaucoup apprécié.
Vous devez vous connecter pour publier un commentaire.
Le courrier des pots besoin d'aller dans WEB-INF/lib, pas dans WEB-INF. Vous aurez besoin de redémarrer l'application ou l'ensemble du serveur tomcat pour qu'il prenne effet.
À partir de votre description, je suppose que vous travaillez avec un éclatée répertoire webapp trouvé dans $TOMCAT_HOME/webapps/. Première chose à savoir: si il y a un .la guerre juste à côté de l'annuaire, puis la guerre est la "source de la vérité". Une guerre est une ARchive Web. En gros, c'est un fichier zip contenant l'ensemble d'un répertoire webapp, et Tomcat extraits de ce répertoire à des fins de performance. Ce que cela signifie pour vous est que quoi que vous fassiez pour le répertoire, si la guerre du fichier timestamp est mis à jour en quelque sorte, elle va se faire sauter à l'écart de toutes les modifications que vous avez apportées à l'annuaire et de le remplacer par le contenu de la guerre.
Maintenant, après que, tout ce que vous devriez avoir besoin pour utiliser le courrier des classes est une structure de fichiers comme:
J'ai eu le même problème. Il n'est pas de votre faute, mais de Tomcat. Sur Tomcat6, l'mail.jar ne fonctionnera pas correctement si vous le mettez dans WEB-INF/lib du dossier comme vous le feriez avec tout autre bocal. Vous devez mettre mail.jar dans la commune de dossier lib (/usr/share/tomcat6/lib), se débarrasser de la mail.jar dans le WEB-INF/lib du dossier, redémarrez Tomcat6, et il va commencer à travailler. Vous n'avez pas besoin de l'activation pot avec tomcat6 soit.
D'autres serveurs d'application sera probablement bien fonctionner avec le mail.jar être dans WEB-INF/lib, ou, plus probablement, ont déjà leurs propres mail bibliothèques intégrées. Avec Tomcat6, vous avez à faire la-dessus.
Déplacer ce code à une Servlet et laissez votre IDE guide d'organiser vos importations et de suggérer comment résoudre vos problèmes de compilation. Ce code n'a pas sa place dans un .jsp
Puis double-vérifier si
WEB-INF/lib
contient toutes les bocaux.