2011-02-01 1 views
1

ЛюдиКак указать UsersFile, GroupsFile и conf/login.config в конфигурации OpenEJB Embedded?

Я установил OpenEJB в Netbeans, чтобы мы могли запустить его и отладить его с помощью встроенной конфигурации. Он работал нормально, пока мы не попытались добавить аутентификацию.

Когда мы запустим его как автономный сервер, мы можем редактировать пользователей безопасности и списки групп, и она работает:

${openejb.base}/conf/login.config 
${openejb.base}/conf/users.properties 
${openejb.base}/conf/groups.properties 

Однако, мы не смогли найти способ определить эти 3 файла при использовании Встроенная конфигурация OpenEJB (проект Netbeans). Кажется, OpenEJB не видит их везде, где они размещены. Призывы метод всегда терпит неудачу с:

*javax.security.auth.login.FailedLoginException: User does not exist* 

Кто-нибудь знает, как определить, что пользователи и группы OpenEJB следует использовать при работе в интегрированном режиме?

Вот структура Netbeans проект

Projectname/SRC - все исходные файлы Projectname/Библиотека - банки: драйвер базы данных, все библиотеки OpenEJB Projectname/Библиотека/конф - файлы безопасности

Спасибо,

Luís

ответ

1

Вы должны использовать свойства LocalInitialContext, чтобы сообщить OpenEJB, где находятся файлы конфигурации. В нашей установке мы настроили муравей сценарий, чтобы скопировать следующие файлы Projectname/построить после компиляции проекта:

conf/users.properties 
conf/openejb.xml 
conf/logs 
conf/logs/logs.txt 
conf/groups.properties 

Тогда вы должны сказать OpenEJB, где их найти:

Properties properties = new Properties(); 
properties.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.LocalInitialContextFactory"); 

//Here are the important properties that you were missing 
properties.setProperty("openejb.home", "../build"); 
properties.setProperty("openejb.configuration", "conf/openejb.xml"); 

//User and password for tests 
properties.put(Context.SECURITY_PRINCIPAL, "userName"); 
properties.put(Context.SECURITY_CREDENTIALS, "thePassword"); 

InitialContext initialContext = new InitialContext(properties); 

EJBRemote ejb = (EJBRemote) initialContext.lookup("EJBRemote"); 

Теперь вы можете запустить OpenEJB внутри NetBeans, Eclipse или любой IDE. Кроме того, вы можете использовать скрипт ant для выполнения всех модульных тестов из командной строки.

Смежные вопросы