WAR 部署到 TomEE Plus 的文件未发送电子邮件:违反加载程序约束错误
WAR file deployed to TomEE Plus not sending emails: loader constraint violation error
我将 EJB 应用程序(作为 .war
文件提供)部署到 TomEE Plus 7.1.0。
它运行正常,但发现无法发送电子邮件。
我调查了 logs/tomee-stderr.[date].log
的日志文件并发现:
java.lang.LinkageError: loader constraint violation: loader (instance
of java/net/URLClassLoader) previously initiated loading for a
different type with name "javax/mail/Session"
后跟一个非常 非常 长的 (>500k 行) 堆栈跟踪。
我发现了一个相关问题() ,据说解决方案是将对javamail
的依赖标记为"provided" 依赖,但我的理解是,这应该在我无权访问的 Maven 项目文件中完成。
我可以随意编辑ROOT目录的内容(我试过从WEB-INF/lib
目录中删除mail.jar
和mail-1.4.4.jar
两个文件,但是没有有用);我相信我也可以用 7-zip 编辑 .war 文件;最后我可以修改服务器中的任何配置。但是我不能编辑应用程序的源代码and/or重新编译它。
(作为潜在的相关信息,我确实拥有对源代码的读取权限,并且它似乎没有使用 Maven - .project
文件的存在表明它是一个 Eclipse 项目。)
名为 geronimo-javamail_1.4_mail-1.9.0-alpha-2.jar
的文件是 TomEE 的一部分,位于 lib
文件夹中。
鉴于我的限制(没有 Maven,没有编译 - 现有 WAR 文件必须有效),如何解决这个错误?
[编辑 1]
我从 WAR 文件(使用 7-zip)中删除了 mail.jar
和 mail-1.4.4.jar
并重新部署,重置了日志文件但是错误保持不变。
我尝试从 TomEE 的 lib
文件夹中删除 geronimo-javamail_1.4_mail-1.9.0-alpha-2.jar
,但 TomEE 无法启动。
似乎还有一个包含 javax.mail.Session class 的 jar 文件?请将所有WEB-INF/lib解压到一个文件夹中,搜索所有包含字符串"javax/mail/Session"
的jar文件的内容
我将 EJB 应用程序(作为 .war
文件提供)部署到 TomEE Plus 7.1.0。
它运行正常,但发现无法发送电子邮件。
我调查了 logs/tomee-stderr.[date].log
的日志文件并发现:
java.lang.LinkageError: loader constraint violation: loader (instance of java/net/URLClassLoader) previously initiated loading for a different type with name "javax/mail/Session"
后跟一个非常 非常 长的 (>500k 行) 堆栈跟踪。
我发现了一个相关问题(javamail
的依赖标记为"provided" 依赖,但我的理解是,这应该在我无权访问的 Maven 项目文件中完成。
我可以随意编辑ROOT目录的内容(我试过从WEB-INF/lib
目录中删除mail.jar
和mail-1.4.4.jar
两个文件,但是没有有用);我相信我也可以用 7-zip 编辑 .war 文件;最后我可以修改服务器中的任何配置。但是我不能编辑应用程序的源代码and/or重新编译它。
(作为潜在的相关信息,我确实拥有对源代码的读取权限,并且它似乎没有使用 Maven - .project
文件的存在表明它是一个 Eclipse 项目。)
名为 geronimo-javamail_1.4_mail-1.9.0-alpha-2.jar
的文件是 TomEE 的一部分,位于 lib
文件夹中。
鉴于我的限制(没有 Maven,没有编译 - 现有 WAR 文件必须有效),如何解决这个错误?
[编辑 1]
我从 WAR 文件(使用 7-zip)中删除了
mail.jar
和mail-1.4.4.jar
并重新部署,重置了日志文件但是错误保持不变。我尝试从 TomEE 的
lib
文件夹中删除geronimo-javamail_1.4_mail-1.9.0-alpha-2.jar
,但 TomEE 无法启动。
似乎还有一个包含 javax.mail.Session class 的 jar 文件?请将所有WEB-INF/lib解压到一个文件夹中,搜索所有包含字符串"javax/mail/Session"
的jar文件的内容