2010-04-07 8 views
1

Допустим, у меня есть удаленный интерфейс A:Возвращение суперкласс типа возвращаемого методом удаленного EJB

@Remote 
public interface A { 
    public Response doSomething(); 
} 

и реализация:

@Stateless 
public class B implements A { 
    public BeeResponse doSomething() {...} 
} 

Где:

  • BeeResponse расширяет ответ.
  • Ответ находится в банке EJB-API, а BeeResponse - в банке реализации.
  • Ответ и отзыв нет другой serialVersionUID.

Мое предположение заключается в том, что отказ от ответа от Б не сработает, я прав?

ответ

1

Ну, я тестировал это в OpenEJB и, похоже, вел себя так, как я и предсказывал, клиент не понимает ответ от Bean, так как класс BeeResponse отсутствует в клиентской системе.

Работает до момента, когда клиент начинает десериализовать ответ. Однако идентификатор последовательной версии UID здесь не влияет, потому что клиент не может даже создать класс.

Все это имеет смысл теперь, но я был «надеясь», что будет какая-то магия, которая заставит ее работать :-)

0

С Java 5 это разрешено, поэтому оно должно работать. Я предлагаю попробовать и вернуться, если вы получите сообщение об ошибке.

 Смежные вопросы

  • Нет связанных вопросов^_^