簡體   English   中英

同一應用程序服務器上不同EAR之間的Websphere 8.5 EJB查找

[英]Websphere 8.5 EJB lookup between different EARs on same Application Server

我的Websphere Application Server和同一服務器上兩個不同EAR文件之間的ejb遠程查找出現了一點問題。

我要從其中使用另一個系統(EAR文件)的服務的主系統(EAR文件)。 因此,我正在嘗試使用遠程查找來獲取Bean。 但是不幸的是,我總是收到一個異常,該異常未由調用方Bean定義:

主系統:main_b.ear ----主Bean:XMLSessionProxyBean

元數據系統:metadata_b.ear ----元數據Bean:MetadataServiceBean

Caused by: java.lang.IllegalArgumentException: ejb/metadata_b/metadata-service.jar/MetadataServiceBean#de.metadata.service.MetadataServiceRemote was not defined for main_b#main-ejbs.jar#XMLSessionProxyBean
    at com.ibm.ws.ejbcontainer.runtime.SharedEJBRuntimeImpl.javaColonLookup(SharedEJBRuntimeImpl.java:692)
    at com.ibm.ejs.container.BeanO.lookup(BeanO.java:1333)

這是我在主系統中的查找方法。 我正在使用sessionContext(因為我已經在會話中,所以不想創建InitialContext):

private static String METADATA_BEAN_LOOKUP =
            "ejb/metadata_b/metadata-service.jar/MetadataServiceBean#de.metadata.service.MetadataServiceRemote";

public MetadataServiceRemote getMetadataService() {
        return getLocalEJB(METADATA_BEAN_LOOKUP);
    }

    @SuppressWarnings("unchecked")
    private <T> T getLocalEJB(final String jndiName) {
        T localEjb = null;
        final SessionContext sContext = objContext.getSessionContext();
        localEjb = (T) sContext.lookup(jndiName);
        return localEjb;
    }

對於我來說,使用@EJB類的@EJB以及對WAS共享庫使用本地查找都是我的選擇。 我想我必須使用ejb-jar.xml和ibm-ejb-jar-bnd.xml之類的東西。 目前沒有ejb-jar.xml或其他部署描述符。 所以我只使用默認綁定。

有人知道嗎?

提前致謝!

使用全局名稱空間jndiname可以完成此工作:java:global / metadata_b / metadata-service / MetadataServiceBean!de.metadata.service.‌MetadataServiceRemote

:-)

暫無
暫無

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

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