![](/img/trans.png)
[英]Gradle, Apache TomEE - TomEEWebappClassLoader loader constraint violation
[英]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:違反加載程序約束:加載程序(java / net / URLClassLoader的實例)先前啟動了名稱為“ javax / mail / Session”的其他類型的加載
然后是非常長(> 500k行)的堆棧跟蹤。
我發現了一個相關的問題( java.lang.LinkageError:違反了加載程序約束:先前啟動了名稱為“ javax / mail / Session”的其他類型的加載 ) ,並且據說該解決方案包括將對javamail
的依賴項標記為“已提供” ”,但是我的理解是應該在Maven項目文件中完成此操作,而我無權訪問該文件。
我可以隨意編輯ROOT目錄的內容(並且嘗試從WEB-INF/lib
目錄中刪除兩個文件,即mail.jar
和mail-1.4.4.jar
,但無濟於事); 我相信我也可以使用7-zip編輯.war文件; 最后,我可以修改服務器中的任何配置。 但是我無法編輯應用程序的源代碼和/或重新編譯它。
(作為潛在的相關信息,我確實具有對源代碼的讀取權限,並且似乎沒有使用Maven- .project
文件的存在表明它是Eclipse項目。)
名為geronimo-javamail_1.4_mail-1.9.0-alpha-2.jar
是geronimo-javamail_1.4_mail-1.9.0-alpha-2.jar
的一部分,位於lib
文件夾中。
考慮到我的限制(沒有行家,沒有編譯-現有的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類的jar文件? 請將所有WEB-INF / lib提取到一個文件夾中,並在其中包含字符串“ javax / mail / Session”的情況下搜索所有jar文件的內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.