簡體   English   中英

WAR中的無狀態ejb>打包到EAR>本地ejb調用

[英]stateless ejb in WAR > package to EAR > local ejb call

我有一個包含2個war文件的耳朵,每個war包含無狀態的ejb和jersey rest類。 這些接口位於commons.jar文件中。 EAR結構如下所示:

EAR
 -- /lib/commons.jar

 -- rest-1.war
      -- stateless-ejb-1.java
      -- jersey-rest-1.java

 -- rest-2.war
      -- stateless-ejb-2.java
      -- jersey-rest-2.java

我正在嘗試使用具有@Inject批注的無狀態ejb-2中的無狀態ejb-1,但遇到CDI deployment failure:WELD-001408: Unsatisfied dependencies在部署期間未CDI deployment failure:WELD-001408: Unsatisfied dependencies錯誤。 當我在stateless-ejb-2中使用@EJB時,會部署耳朵,但是在調用jersey-rest-2時出現遠程查找錯誤。

這是我的方法調用鏈:

  • jersey-rest-1> stateless-ejb-1:效果很好
  • jersey-rest-2>無狀態ejb-2>無狀態ejb-1:我收到ejb-1查找錯誤

我不想使用遠程ejb調用,因為所有內容都打包在同一個耳朵中(我想使用@Inject而不是@EJB),但是它不起作用。

我猜想,如果我將stateless-ejb-1.java打包到一個jar並將其放在EJB / lib下,它將起作用。 但是我不想在我的項目中創建一個新模塊,只是要將這個文件打包到單獨的jar文件中。 解決辦法是什么?

您需要將stateless-ejb-1移到EAR中的ejb-jar模塊中。

即使內置於EAR文件中,不同的WAR文件中的類也不是彼此可見的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM