Я пытаюсь (модульно) протестировать мой класс EJB без необходимости запуска среды websphere. Сейчас я использую Open EJB , но есть некоторые проблемы с разрешением имен JNDI для других EJB, которые используются в моем EJB ... и у меня нет способа внедрить ложные классы из моего теста прямо сейчас.
Получение 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}");
Свойства не используются?
Также конфигурация регистрации не используется. Я вижу только сообщения INFO и WARN от Open EJB, хотя я установил log4j.category.OpenEJB.*
и т.п. на DEBUG или TRACE .