在没有JNDI冲突的情况下部署EJB和WebService [weblogic 12c]

时间:2020-06-29 17:29:17

标签: ejb weblogic12c

我有一个EJB和使用它的WebService应用。

我已经部署了EJB。尝试部署Web服务时出现错误。

如果我的jar包含Web服务部署中包含的EJB类(位于war lib目录中),则服务器尝试再次注册EJB(这会在启动时引发错误)

如果我使用EJB jar作为编译器构建Web服务,则仅Web服务将不会部署,因为它找不到EJB。

我假设EJB应该成为Web服务部署的一部分,但我的客户端应用程序对它的引用应不同于我。客户端应用程序确实可以独立运行。

在这里我声明bean

    @EJB
    static oAuthTokenOBJ tokenBean; 
    
    public static oAuthTokenOBJ getTokenBean() {
        return tokenBean;
    }

    public static void setTokenBean(oAuthTokenOBJ oAuthTokenOBJ) {
        tokenBean = oAuthTokenOBJ;
    }

这是获取豆子的相当标准的东西

    @SuppressWarnings("unchecked")
    private static Context getInitialContext() throws NamingException {
        @SuppressWarnings("rawtypes")
        Hashtable env = new Hashtable();
        env.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
      //env.put(Context.PROVIDER_URL, "t3://127.0.0.1:7001");
        env.put(Context.PROVIDER_URL, "t3://hdcblad0920.hud.gov:7011");
        return new InitialContext(env);
    }
    
    public static void getBean() {
        try {
            final Context c = getInitialContext();
            // get the bean: oAuthToken#com.salientcrgt.chums.oAuthTokenOBJ
            setTokenBean( (oAuthTokenOBJ) c.lookup("oAuthToken#com.salientcrgt.chums.oAuthTokenOBJ"));
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

在部署餐巾纸时,如何更改我的餐巾客户机以使用Bean,而服务器不尝试重新注册它?

0 个答案:

没有答案