我正在尝试(单元)测试我的 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 的INFO和WARN消息,尽管我将log4j.category.OpenEJB.*
之类设置为DEBUG或TRACE。