Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Java для Web (EE, Servlet, JSP, Tomcat, Spring MVC)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.09.2011, 19:00   #1
_Николай_
 
Регистрация: 24.02.2010
Сообщений: 5
По умолчанию Удаленное использование EJB.

Пожалуйста, помогите разобраться.

Создал приложение J2EE и модуль EJB. Создал сеансовый компонент с удаленным интерфейсом. Сеансовый компонент содержит один метод, который возвращает строку "Hello World!!!". Добавил к проекту клиента gf-client.jar. Сделал как написано здесь. Пробую вызвать созданный метод из приложения JavaSE - ничего не получается.
Падает следующее исключение:

07.09.2011 18:36:39 com.sun.enterprise.v3.server.Common ClassLoaderServiceImpl findDerbyClient
INFO: Cannot find javadb client jar file, derby jdbc driver will not be available by default.
07.09.2011 18:36:47 com.sun.enterprise.iiop.security.Se curityMechanismSelector postConstruct
SEVERE: IIOP1005: An exception has occured in the ejb security initialization.
org.jvnet.hk2.component.ComponentEx ception: injection failed on org.glassfish.api.invocation.Invoca tionManagerImpl.invHandlers with class [Lorg.glassfish.api.invocation.Compo nentInvocationHandler;
at org.jvnet.hk2.component.InjectionMa nager.error_injectionException(Inje ctionManager.java:277)
at org.jvnet.hk2.component.InjectionMa nager.inject(InjectionManager.java: 159)
...

Серверная сторона.
Листинг Hello.java:
Код:
package ejb;

import javax.ejb.Stateless;

@Stateless
public class Hello implements HelloRemote {

    @Override
    public String GetGreeting() {
        return "Hello World!!!";
    }
}
Сторона клиента.
Листинг HelloRemote.java (удаленный интерфейс)
Код:
package ejb;

import javax.ejb.Remote;

@Remote
public interface HelloRemote {

    String GetGreeting();
}
Листинг ClientEJB.java
Код:
package clientejb;

import ejb.HelloRemote;
import javax.naming.InitialContext;
public class ClientEJB {

    public static void main(String[] args) {
        try {
            InitialContext context = new InitialContext();
            HelloRemote h = (HelloRemote) context.lookup(
                    "java:global/MyEnterpriseApplication/MyEnterpriseApplication-ejb/Hello!ejb.HelloRemote");
            System.out.println(h.GetGreeting());
        } catch (Exception ex) {
            System.out.println("Exception: " + ex.toString());
        }
    }
}
_Николай_ вне форума Ответить с цитированием
Старый 08.09.2011, 13:21   #2
_Николай_
 
Регистрация: 24.02.2010
Сообщений: 5
По умолчанию

Заработало! Дело было в подключаемых библиотеках к клиентскому проекту.
_Николай_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите начинающему. Ошибка с EJB-QL soap Java для Web (EE, Servlet, JSP, Tomcat, Spring MVC) 0 01.10.2008 12:27