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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Exception в EJB, чудеса 
:(
    Опции темы
sandello
Дата 3.10.2006, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Может я что-то не понимаю.

Есть интерфейс
Код

@Remote
public interface ControllerPhonePrefixIRemote {
    
    /**
     * метод добавляет новый телефонный префикс
     * @param name наименование
     * @param value значение
     * @throws TException
     */
    void addPhonePrefix(String name, String value) throws TException;
    
    /**
     * метод возвращает список всех телефонных префиксов
     * @return список
     * @throws TException
     */
    List<PhonePrefix> getSpisokAllPhonePrefix();
    
}


Это remote интерфейс Stateless Session Bean.
Есть код, использующий этот интерфейс:
Код

    ControllerPhonePrefixIRemote controller = dataAccess.getPhonePrefixIRemote();
    PhonePrefixCommand params = (PhonePrefixCommand) command;

    // создадим тел префикс
    try {
      logger.debug("before addPhonePrefix");
      controller.addPhonePrefix(params.getName(), params.getValue());
      logger.debug("after addPhonePrefix");
    } catch (TException e) {
      logger.debug("catching error",e);
      // обрабатываем отловленную ошибку (случай, когда тел префикс с введенным значением существует в базе)
      HashMap<String, Object> model = new HashMap<String, Object>();
      // первый вариант.Выдаем ошибку, которая в серверной части определена
      String msg = e.getMessage();
      model.put("error", msg);
      return showForm(request, response, errors, model);
    } catch (Exception e){
      logger.warn(e,e);
      HashMap<String, Object> model = new HashMap<String, Object>();
      String msg = e.getMessage();
      model.put("error", msg);
      return showForm(request, response, errors, model);
    }
    logger.debug("before return");


Код этот используется в spring'овском контроллере.
Теперь самое главное. В процессе работы биновского метода addPhonePrefix возникает этот самый TException
Но почему-то в клиента попадает 
Код

java.lang.reflect.UndeclaredThrowableException
        at $Proxy283.addPhonePrefix(Unknown Source)
        at com.telecom_m.tariffmanager.web.CreatePhonePrefixFormController.onSubmit(Unknown Source)
        at org.springframework.web.servlet.mvc.SimpleFormController.processFormSubmission(SimpleFormController.java:258)
        at org.springframework.web.servlet.mvc.AbstractFormController.handleRequestInternal(AbstractFormController.java:249)
        at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
        at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:44)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:723)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:663)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:394)
        at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:358)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)


Приложение состоит из двух частей - ejb3 и web, оба они оборачиваются в ear и деплоятся в Jboss 4.0.4GA
Самая фишка в том, что на одном (локальном) jboss'е все работает как должно - появляется TException, который благополучно перехватывается. А на рабочем - шиш, возникает непонятно откуда Undeclared...
Рабочий от локального отличаются только тем, что на рабочем уже крутятся несколько приложений.

сам виновник торжества
Код

package com.telecom_m.tariffmanager.ejb;

public class TException extends Exception {
    public TException() {
    super();
    }

    public TException(String message) {
    super(message);
    }

    public TException(String message, Throwable cause) {
        super(message, cause);
    }

    public TException(Throwable cause) {
        super(cause);
    }
    
}





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

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

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


 




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


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

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