Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с получеием бина 
:(
    Опции темы
shedow
Дата 27.2.2009, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



Добрый день.
Столкнулся с проблемой, с которой не могу разобраться. Перебрался на JBoss, пытаюсь сделать пример создания бина, но ничего не выходит. Код такой.

интерфейс:
Код

@Remote
public interface MySession {

    public String callBean();
}



сам бин:
Код

@Stateless(name="MySessionBean") 
public class MySessionBean implements MySession{

   public String callBean() {

        return "   EJB Bean";
    }
}


вызов бина:
Код

public class Uchet_servletImpl extends RemoteServiceServlet implements Uchet_servlet {


  public String add(String data){
InitialContext ctx = null;
      String str = "";
        try {
            ctx = new InitialContext();
                    
                      MySession nacl = (MySession) ctx.lookup("uchet_Application/MySessionBean/remote");
                   


        } catch (NamingException e) {
            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
            return "траблы";
        }

return nacl.callBean();
  }
}



Лукап отрабатывает, но при приведении полученного объекта к классу MySession - происходит вылет сервлета.
Если лукап делать без приведения:
Код

Object nacl = ctx.lookup("uchet_Application/MySessionBean/remote");


то ошибок нет.

Подскажите, как решить эту проблему.
PM MAIL   Вверх
Asal
Дата 27.2.2009, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 26.12.2006
Где: Минск

Репутация: 4
Всего: 7



Код

@Remote(ArticleServiceRemote.class)
@Stateless(mappedName = "ejb/ArticleService", name = "ArticleServiceEJB")
public class ArticleService { ... }


ejb/ArticleService это JNDI name


--------------------
PM MAIL ICQ   Вверх
shedow
Дата 27.2.2009, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



По моему, не совсем то. Бин по имени находится. 
PM MAIL   Вверх
Asal
Дата 27.2.2009, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 26.12.2006
Где: Минск

Репутация: 4
Всего: 7



А дебажить ?
В IDEA не проблема под дебагером посмотреть что возвращается smile


--------------------
PM MAIL ICQ   Вверх
shedow
Дата 27.2.2009, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



Дебажил.   smile 
Возвращает класс с именем Proxy64@4826 с довольно сложной структурой и, похоже, ссылками на нужный бин, контейнеры и прочая служебная.
в частности:
Код

jboss.j2ee:ear=uchet_Application.ear,jar=EJB_Uchet.jar,name=MySessionBean,service=EJB3


PM MAIL   Вверх
Asal
Дата 27.2.2009, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 26.12.2006
Где: Минск

Репутация: 4
Всего: 7



Точно, я и забыл про это smile
Надо поискать как из Proxy достать


--------------------
PM MAIL ICQ   Вверх
shedow
Дата 27.2.2009, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



Вообще, насколько я понимаю этот возвращаемый прокси - из второй EJB. Откуда он тут мог взяться?
PM MAIL   Вверх
Asal
Дата 27.2.2009, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 26.12.2006
Где: Минск

Репутация: 4
Всего: 7



Ну как откуда smile

надеюсь это поможет


--------------------
PM MAIL ICQ   Вверх
shedow
Дата 27.2.2009, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



Да, это и есть вызов во второй спецификации EJB. Получаем прокси, из него домашний интерфейс через который создаем экземпляр. 
А в третьей, как я понимаю,  это все должен выполнять контейнер и возвращать уже бин. Там и аннотаций для домашнего интерфейса нет...
PM MAIL   Вверх
Asal
Дата 27.2.2009, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 26.12.2006
Где: Минск

Репутация: 4
Всего: 7



@EJB

Вот поможет smile


--------------------
PM MAIL ICQ   Вверх
shedow
Дата 27.2.2009, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



Не, не поможет. smile 
Я инжекцию в первую очередь попробовал, не работает.
Потому и взялся за лукап.
PM MAIL   Вверх
shedow
Дата 2.3.2009, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



Проблема частично решена - потребовалось прописать в jndi.properties сервера адрес провайдера JNDI.
Но я точно знаю как минимум пару примеров проектов, которые нормально работают на сервере без этих настроек. К сожалению, код для изучения получить на данный момент не могу.
Не подскажете, какие могут быть альтернативные варианты указания адреса провайдера?
PM MAIL   Вверх
shedow
Дата 3.3.2009, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



Вылезла другая проблема.
При старте модуля JPA вылезает ошибка:

Код

could not get database metadata
com.microsoft.sqlserver.jdbc.SQLServerException: Invalid object name 'information_schema.system_sequences'.


Сервер MS SQL2000.
Соединение с сервером JBoss устанавливает. 

персистенция такая:
Код

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">


    <persistence-unit name="NakladnayaBase">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <jta-data-source>java:jdbc/Test</jta-data-source>
        <class>EJB.Nakladnaya</class>


    <properties>
        

        <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
        <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JBossTransactionManagerLookup"/>

        <property name="hibernate.show_sql" value="true"/>
        <property name="hibernate.hbm2ddl.auto" value="update"/>
    </properties>    
    </persistence-unit>
</persistence>


Никак не могу понять, в чем проблема?
PM MAIL   Вверх
Asal
Дата 3.3.2009, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 26.12.2006
Где: Минск

Репутация: 4
Всего: 7



по всей видимости нужны  smile с бубном

Таблица system_sequences в базе information_schema есть ?


--------------------
PM MAIL ICQ   Вверх
shedow
Дата 4.3.2009, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



Не, там такого нема.
Таки подсказали мне в чем проблема - в неправильно указаном диалекте хибера. 
Тут:
Код

<property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>


диалект хиперсоника указан, а нужно mssql.
После корректного указания все заработало.  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0851 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.