Как заставить openEJB игнорировать mappedName и использовать вместо него openejb.jndiname.format - PullRequest
1 голос
/ 08 августа 2011

У меня есть EJB:

@Stateless(mappedName = "MetadataFacade")
public class MetadataFacade implements MetadataFacadeRemote {

и openEJB, настроенный с использованием:

-Dopenejb.jndiname.format={ejbClass.simpleName}#{interfaceClass}

Когда запускается встроенный openEJB, он игнорирует опцию openejb.jndiname.format и создает неправильное имя JNDI:

INFO   info, Jndi(name=MetadataFacade) --> Ejb(deployment-id=MetadataFacade)

Как мне настроить его на использование опции openejb.jndiname.format и создать имя JNDI, подобное:

MetadataFacade#my.package.MetadataFacadeRemote

?

Если openEJB можетне делай этого, я был бы благодарен за любой обходной путь.

Ответы [ 2 ]

0 голосов
/ 26 августа 2011

Поскольку описанный вариант использования не поддерживается, я создал патч

mappedName.patch

, который отключает исходное поведение и вместо этого добавляет новую переменную ejbClass.mappedName , который можно использовать в openejb.jndiname.format .


Патч для головы (редакция 1034599):

 http://svn.apache.org/repos/asf/openejb/tags/openejb-3.1.4

Примените его к корневым источникам, используя:

patch -p0 -i mappedName.patch

, затем соберите openEJB, используя:

mvn -Dmaven.{test,itest}.skip -Dassemble clean install

и добавьте

container / openejb-core / target / openejb-core-3.1.4.jar

для вашего classpath в качестве первой записи.

0 голосов
/ 08 августа 2011

Для этого сейчас ничего нет, но мы, вероятно, можем добавить флаг для настройки этого. Какую версию вы используете?

...