部署到TomEE Plus的WAR文件未发送电子邮件:加载程序约束违反错误

时间:2019-02-19 02:58:09

标签: java javamail windows-server-2012 tomee tomee-7

我在TomEE Plus 7.1.0中部署了EJB应用程序(以stacktrace文件形式提供)。

运行正常,但注意到没有发送电子邮件。

我调查了.war处的日志文件,发现了这一点:

  

java.lang.LinkageError:违反加载程序约束:加载程序(实例   Java / net / URLClassLoader的代码)之前为   名称为“ javax / mail / Session”的不同类型

之后是非常长的 (> 500k行)堆栈跟踪。

我发现了一个相关的问题java.lang.LinkageError: loader constraint violation:previously initiated loading for a different type with name "javax/mail/Session",据说解决方案在于将对logs/tomee-stderr.[date].log的依赖项标记为“提供的”依赖项,但我的理解是应该在Maven项目文件中完成此操作,而我没有访问权限。

我可以随意编辑ROOT目录的内容(并且我尝试从javamail目录中删除两个文件,即mail.jarmail-1.4.4.jar,但无济于事) ;我相信我也可以使用7-zip编辑.war文件;最后,我可以修改服务器中的任何配置。但是我不能编辑应用程序的源代码和/或重新编译它。

(作为潜在的相关信息,我确实具有对源代码的读取访问权限,并且似乎没有使用Maven-WEB-INF/lib文件的存在表明它是一个Eclipse项目。)

名为.project的文件是TomEE的一部分,位于geronimo-javamail_1.4_mail-1.9.0-alpha-2.jar文件夹中。

鉴于我的限制(没有行家,没有编译-现有的WAR文件必须正常工作),如何解决此错误?

[编辑1]

  • 我从WAR文件(带有7-zip)中删除了libmail.jar并重新部署,重置了日志文件,但错误仍然相同。

  • 我尝试从TomEE的mail-1.4.4.jar文件夹中删除geronimo-javamail_1.4_mail-1.9.0-alpha-2.jar,但是TomEE无法启动。

1 个答案:

答案 0 :(得分:0)

似乎仍然有一个包含javax.mail.Session类的jar文件?请将所有WEB-INF / lib提取到一个文件夹中,并在其中包含字符串“ javax / mail / Session”的情况下搜索所有jar文件的内容