簡體   English   中英

WebSphere Liberty 的 EJB 綁定

[英]EJB Bindings for WebSphere Liberty

我正在將 Ear 應用程序從 WebSphere 8.5 遷移到自由。

作為更改的一部分,我用 java 命名空間替換了 JNDI 綁定(在查找中)

例如

ejb/abc/cde/TestHome  
ejblocal:ejb/qwe/ret/AbcHome  

替換為類似於的 java 命名空間

java:global/my-ear-app-name/my-ejb-module-name/MyEjbBean!my.package.name.MyEjbLocal

但是在代碼的某些地方,有這樣的查找

.lookup("com.abc.cde.Test");

這些查找是使用 java 命名空間的本地查找嗎?

如何處理這些查找? 我應該添加 java 命名空間,如 java:global/java:app 等嗎?

正如您所注意到的,WebSphere JNDI 傳統自定義綁定當前在 Liberty 中不起作用。 為了將來參考,我們目前正在努力讓他們在 Liberty 中工作,以便將來更輕松地進行遷移。 ( https://github.com/OpenLiberty/open-liberty/issues/7918 )

您對查找感到困惑( InitialContext.lookup("com.abc.cde.Test"); )是我們所說的遠程 bean 的默認短格式綁定,它只是遠程接口。

將這些替換為 Java 命名空間查找是正確的,使用以下模式:

  • java:global/<appname>/<modulename>/<bean>!<interface>
  • java:app/<modulename>/<bean>!<interface>
  • java:module/<bean>!<interface>

    • 注意: <interface>是限定的接口名稱,包括包
    • 注意 2:對java:appjava:module的調用需要與 bean 位於同一應用程序或模塊中。

此外,如果您運行 Liberty Server,我們會使用 CNTR0167I 打印出 java:global 綁定:

作為參考,舊的默認綁定還不起作用:

  • 本地長格式: ejblocal:<appname>/<modulename>.jar/<bean>#<interface>
  • 本地簡寫形式: ejblocal:<interface>
  • 遠程長格式: ejb/<appname>/<modulename>.jar/<bean>#<interface>
  • 遠程短格式: <interface>

還有一些舊的自定義綁定表單可以通過綁定文件指定,例如ejb-jar-bnd.xml ,它們目前具有相同的遷移策略,但除非您也碰到了他們。 安全的賭注是,如果它使用不是 java 命名空間的查找來查找 bean,只需將其替換為 java:global。

暫無
暫無

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

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