2012-02-23 37 views
1

我有几个应用程序需要电子邮件(smtp),但也希望通过电子邮件发送Tomcat自己的ERROR消息。我发现这个作品只有当我把mail.jar放入$ CATALINA_HOME/lib并从所有的webapps中删除它(〜/ WEB-INF/lib)应mail.jar和activation.jar进入CATALINA/lib?

第一个问题:activation.jar应该进入Tomcat的lib夹?

第二个问题是:如果一个未受监控的应用程序在自己的lib中包含这些罐子会发生什么? (看起来这打破了Tomcat的log4j电子邮件,我很困惑为什么Tomcat没有在自己的lib中找到并使用类,而不是抛出一个smtp邮件提供程序异常(大概是由于同一个mail.jar在classpath中)。

回答

0

那些罐子是在Tomcat的classpath如果Tomcat使用它们。即使有些web应用包括他们太多,每一个web应用程序都有自己的类加载器和这些罐子是不是到较低水平的tomcat可见。WebbappClassLoader实现了孩子优先委托模型,与Java默认的父母优先模型相比,

+1

谢谢。但是,不明白为什么当mail.jar被包含时,Tomcat邮件的Appender失败在$ catalina_home/lib folde中还可以在一个webapp lib文件夹中找到。只要我从webapp中删除了mail.jar的东西就行了。让我感到紧张,有人无意中将mail.jar放入webapp中,从而破坏了Tomcat-leel日志消息的log4j电子邮件附件。错误是'没有提供者',这似乎表明类路径问题(没有找到mail.jar中的属性文件)。 – Fred 2012-02-24 14:48:39

相关问题