Ссылка на ejb в дескрипторе размещения (без аннотаций)
Я пытаюсь внедрить зависимость в EJB 3.0, используя только дескриптор развертывания. При развертывании моего приложения в Glassfish (v3.1) я получаю следующее исключение:
java.lang.RuntimeException: Warning : Unable to determine local business vs. remote business designation for EJB 3.0 ref Local ejb-ref name=ejb/Test2,Local 3.x interface =pl.Test2Local,ejb-link=Test2,lookup=,mappedName=,jndi-name=,refType=Session
Понятия не имею, что я делаю не так. Кто-нибудь может мне помочь, пожалуйста?
Дескриптор ejb-jar.xml:
<session>
<ejb-name>Test2</ejb-name>
<remote>pl.Test2Remote</remote>
<local>pl.Test2Local</local>
<ejb-class>pl.Test2</ejb-class>
<session-type>Stateless</session-type>
</session>
<session>
<ejb-name>Test</ejb-name>
<remote>pl.TestRemote</remote>
<local>pl.TestLocal</local>
<ejb-class>pl.Test</ejb-class>
<session-type>Stateless</session-type>
<ejb-local-ref>
<ejb-ref-name>ejb/Test2</ejb-ref-name>
<local>pl.Test2Local</local>
<ejb-link>Test2</ejb-link>
<injection-target>
<injection-target-class>pl.Test</injection-target-class>
<injection-target-name>test2</injection-target-name>
</injection-target>
</ejb-local-ref>
</session>
Класс пл.Тест:
public class Test implements TestRemote, TestLocal {
private Test2Local test2;
public Test() {
}
}
2 ответа
Решение:
<enterprise-beans>
<session id="Test">
<ejb-name>Test</ejb-name>
<ejb-class>pl.Test</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
<ejb-local-ref>
<ejb-ref-name>pl.Test/test2</ejb-ref-name>
<local>pl.Test2Local</local>
<injection-target>
<injection-target-class>pl.Test</injection-target-class>
<injection-target-name>test2</injection-target-name>
</injection-target>
</ejb-local-ref>
<depends-on/>
</session>
<session id="Test2">
<ejb-name>Test2</ejb-name>
<mapped-name></mapped-name>
<ejb-class>pl.Test2</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
<depends-on/>
</session>
</enterprise-beans>
Вам нужно заменить ниже теги в XML:
удаленный = бизнес-удаленный локальный = бизнес-локальный