【问题标题】:Configure JNDI names with Open EJB使用 Open EJB 配置 JNDI 名称
【发布时间】:2010-05-19 12:19:34
【问题描述】:

我正在尝试(单元)测试我的 EJB 类,而不必启动我的 websphere 环境。现在我正在使用Open EJB,但是在为我的 EJB 中使用的其他 EJB 解析 JNDI 名称时存在一些问题......而且我现在无法从我的测试中注入模拟类。

获取 InitialContext

final Properties properties = new Properties();
properties.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.LocalInitialContextFactory");
properties.setProperty("log4j.category.OpenEJB.options ", "debug");
properties.setProperty("log4j.category.OpenEJB.startup ", "debug");
properties.setProperty("log4j.category.OpenEJB.startup.config ", "debug");
properties.setProperty("MyOwnDatasource.JdbcDriver ", "com.ibm.as400.access.AS400JDBCDriver");
properties.setProperty("MyOwnDataSource.JdbcUrl ", "jdbc:as400:MYHOSTNAME;database name=MYDATABASE;libraries=MYDEFAULTTABLE");
ic = new InitialContext(properties);

在我的测试类中有一个java:comp/env/ejb/PrefixEjbNameLocalHome 的查找,我无法设置 Open EJB 以生成该格式的 JNDI 名称。

JNDI 名称格式的附加属性

我尝试像这样设置格式规则:

properties.setProperty("openejb.jndiname.format ", "comp/env/ejb/{interfaceClass}");

没有使用属性?

还没有使用日志记录配置。我只看到来自 Open EJB 的 INFOWARN 消息,尽管我将 log4j.category.OpenEJB.* 等设置为 DEBUGTRACE .

【问题讨论】:

    标签: java unit-testing junit openejb


    【解决方案1】:

    是“java:”部分弄乱了你的测试用例。基本上 Context.INITIAL_CONTEXT_FACTORY 和 "java:" 是互斥的。 InitialContext 类对“java:”或任何“foo:”查找有特殊的理解,如果它们位于名称的开头,它将使用您指定的 INITIAL_CONTEXT_FACTORY。 JNDI 中有些令人沮丧的部分。

    如果您查找与日志中打印的完全一致的名称,它将起作用。因此,例如此日志消息:

    INFO - Jndi(name=WidgetBeanRemote) --> Ejb(deployment-id=WidgetBean)
    

    然后在代码中:

    Properties p = new Properties();
    p.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.LocalInitialContextFactory");
    // set any other properties you want
    Context context = new InitialContext(p);
    
    Object o = context.lookup("WidgetBeanRemote");
    

    【讨论】:

    • 哇,谢谢。我已经和这个斗争了一段时间。尤其是找到一个在使用 openEjb 进行测试和在 Tomee 上部署时都可以查找的名称。
    猜你喜欢
    • 2013-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-18
    • 2013-01-04
    • 2018-03-02
    • 2012-09-19
    相关资源
    最近更新 更多