亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在春季引導中測試 EJB - 由于模塊信息,openejb 無法處理多版本 JAR

如何在春季引導中測試 EJB - 由于模塊信息,openejb 無法處理多版本 JAR

ABOUTYOU 2022-09-21 16:57:28
我目前正在將一個應用程序從彈簧啟動 1.X 升級到 2.X。應用程序中的測試之一是在@SpringBootTest下使用 OpenEJB 測試無狀態遠程 EJB。由于對 SpringBean 自動布線感知器的支持在春季 5 中已被刪除,我現在面臨著重寫邏輯并對其進行測試的任務,問題來了:我們在 JDK 1.8 上運行,openejb(4.7.4,在測試中用于初始化 jndiContext)無法處理多版本 JAR,這是升級到彈簧靴 2.X 的依賴項(例如字節伙伴等)。OpenEJB 嘗試加載元 INF/版本/9/模塊信息,但在非法參數異常上失敗。我也在嘗試從OpenEJB切換到EJB容器,以及玻璃魚作為加載器,但我面臨著不同的問題(無狀態豆未在jndContext中設置 - 在DEBUG中檢查),我目前正在嘗試解決。我的問題是:有沒有可能以某種方式強制類加載器或openejb忽略模塊信息,以便能夠在JDK 1.8下運行它,并在類路徑上使用多版本jar?或者有沒有辦法將 EJB 容器與嵌入所有網格的玻璃魚一起使用,它目前不會加載 EJB,但至少不會錯誤地加載上下文?我需要避免這個錯誤,或者使用另一種方法來測試春季引導測試中的無狀態豆。注意:我不想使用阿奎利安版本摘要:京東 1.8彈簧啟動啟動器父級:2.1.3.發布openejb-core: 4.7.4全嵌玻璃魚:5.1.0使用開放 EJB 時出錯(模塊信息,多版本 JAR 問題):ERROR OpenEJB [] []- FATAL ERROR: Unknown error in Assembler.  Please send the following stack trace and this message to [email protected] :  java.lang.IllegalArgumentException     at org.apache.xbean.asm5.ClassReader.<init>(Unknown Source)     at org.apache.xbean.asm5.ClassReader.<init>(Unknown Source)     at org.apache.xbean.asm5.ClassReader.<init>(Unknown Source)     at org.apache.openejb.util.AnnotationFinder.readClassDef(AnnotationFinder.java:299)     at org.apache.openejb.util.AnnotationFinder.find(AnnotationFinder.java:164)     at org.apache.openejb.config.DeploymentLoader.checkAnnotations(DeploymentLoader.java:2008)     at org.apache.openejb.config.DeploymentLoader.discoverModuleType(DeploymentLoader.java:1891)     at org.apache.openejb.config.DeploymentsResolver.processUrls(DeploymentsResolver.java:389)     at org.apache.openejb.config.DeploymentsResolver.loadFromClasspath(DeploymentsResolver.java:302)     at org.apache.openejb.config.ConfigurationFactory.getModulesFromClassPath(ConfigurationFactory.java:664)使用玻璃魚時出錯(可能指定的模塊錯誤?):ERROR embedded [] []- EJB6005:No EJB modules found
查看完整描述

1 回答

?
湖上湖

TA貢獻2003條經驗 獲得超2個贊

使用較新版本的openEJB->Apache Tomee解決了問題,它使用asm6并支持JDK 1.9,即使我使用的是JDK 1.8,但由于多版本JARS作為春季啟動2的依賴項,因此需要這種支持。使用的工件:

    <dependency>
        <groupId>org.apache.tomee</groupId>
        <artifactId>apache-tomee</artifactId>
        <version>8.0.0-M2</version>
        <scope>test</scope>
    </dependency>


查看完整回答
反對 回復 2022-09-21
  • 1 回答
  • 0 關注
  • 194 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號