Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Не могу зарегистрировать в JNDI мой бин


Автор: m0zg 26.8.2009, 12:41
Пытаюсь в Weblogic 10.3.1.0 зарегистрировать мой Stateless-бин:

Код

@Stateless
@Interceptors(SeamInterceptor.class)
public class CalcAction implements CalculatorLocal {
...
}

//интерфейс
@Local
public interface CalculatorLocal {
...
}


web.xml
Код


    <ejb-local-ref>
        <ejb-ref-name>ejb/CalcActionBean/local</ejb-ref-name>
        <ejb-ref-type>Session</ejb-ref-type>
        <local>ru.test.CalculatorLocal</local>
    </ejb-local-ref>


И ничего у меня не регистрируется. Пробовал делать по документации, т.е. с weblogic-ejb-jar.xml и т.п. Толку никакого. Добавил remote-интерфейс с методом для теста. Реализовал его в бине. В JNDI появился мой бин (со странным построением имени). И из моих JSF-страниц дёргается именно удалённый интерфейс, а он мне вообще не нужен, я хочу через локальный. И чтоб не было:

Код

Caused by: javax.naming.NameNotFoundException: While trying to look up comp/env/ejb/CalcAction/local in /app/webapp/SeamCalculator/20314908.;


smile

Никто не сталкивался? Или может я что-то не так делаю? Был признателен за пример вашего приложения под WebLogic.

Добавлено через 9 минут и 5 секунд
Нашёл тут на одном сайте

Цитата

The problem is that weblogic does not make business local interfaces available on the global JNDI tree. This is not specified in EJB 3.0 specification so some vendors make business local interfaces available on the global JNDI tree (e.g. JBoss), while others filter them (e.g. Weblogic).
To access the business local interface you need to define ejb local references for your component environment (i.e. from your servlet environment). 


И как мне узнать под каким именем зарегистрировался мой бин и как до него достучаться?

Автор: m0zg 26.8.2009, 15:33
Нашёл в JNDI свой бин, теперь при выполнении новый эксепшн:

Код

javax.faces.FacesException: #{calcAction.calculate}: java.lang.IllegalArgumentException: Could not invoke method by reflection: CalculatorLocal.calculate() on: ....


ох.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)