在我添加了一些.jar文件并尝试了一些代码之后,我的Tomcat停止工作了。我试图使用JavaMail发送电子邮件,所以我在线复制了一些代码。在某些方面,我是新手,所以我不太了解发生了什么。我在做什么错了?
在删除这些罐子之后,替换它们,在网上搜索并且感觉到我正在还原为穴居人,我回到了我复制的代码,全部注释,并开始逐行取消注释,然后发现确切的部分正在破坏Tomcat的是“ Message.RecipientType.TO”。最奇怪的部分是Eclipse不会显示任何错误,在我尝试启动服务器之前,一切似乎都可以正常工作。
import com.sun.mail.smtp.*;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
public class GrabarUsuario extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String to = "someEmail@gmail.com";
String from = "someOtherEmail@hotmail.com";
String host = "localhost";
Properties properties = System.getProperties();
properties.setProperty("mail.smtp.host", host);
Session session = Session.getDefaultInstance(properties);
try{
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));
message.setSubject("Ping");
message.setText("Hello, this is example of sending email ");
// Send message
Transport.send(message);
System.out.println("message sent successfully....");
}catch (MessagingException mex) {mex.printStackTrace();}
}
}
我得到的错误是:
(用西班牙语翻译该行: 嘉年华没有成功的背景: 没有名称的上下文-或与此类加载器关联的名称上下文-或类似的东西-)
ADVERTENCIA:无法检索容器的JNDI命名上下文 [StandardEngine [Catalina] .StandardHost [localhost] .StandardContext [/ Victorial]] 因此没有对该容器执行任何清理 javax.naming.NamingException:没有任何关联 埃斯特·卡加多尔·德克莱斯 org.apache.naming.ContextBindings.getClassLoader(ContextBindings.java:350) 在 org.apache.catalina.deploy.NamingResources.cleanUp(NamingResources.java:985) 在 org.apache.catalina.deploy.NamingResources.stopInternal(NamingResources.java:968) 在 org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232) 在 org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5704) 在 org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232) 在 org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:272) 在 org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:1041) 在 org.apache.catalina.core.ContainerBase.destroyInternal(ContainerBase.java:1234) 在 org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:305) 在 org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:1041) 在 org.apache.catalina.core.ContainerBase.destroyInternal(ContainerBase.java:1234) 在 org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:305) 在 org.apache.catalina.core.StandardService.destroyInternal(StandardService.java:593) 在 org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:305) 在 org.apache.catalina.core.StandardServer.destroyInternal(StandardServer.java:829) 在 org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:305) 在org.apache.catalina.startup.Catalina.start(Catalina.java:693)处 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)位于 sun.reflect.NativeMethodAccessorImpl.invoke(未知来源)位于 sun.reflect.DelegatingMethodAccessorImpl.invoke(未知源)位于 java.lang.reflect.Method.invoke(来源未知) org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:321)在 org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455)
答案 0 :(得分:0)
我将在一个正在运行的项目中添加我正在使用的Maven依赖关系,这可能会有所帮助。该软件包与应用程序一起打包,我不对默认的tomcat安装进行任何更改:
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-javamail_1.4_spec</artifactId>
<version>1.7.1</version>
</dependency>
<dependency>
<groupId>org.apache.geronimo.javamail</groupId>
<artifactId>geronimo-javamail_1.4_mail</artifactId>
<version>1.8.4</version>
</dependency>
我已经有一段时间没有更新此应用程序了,因此可能有较新的版本。