Как получить доступ к бинам сущностей с удаленного клиента?

У меня есть это на сервере:

class Person{...}

а также

@Stateless
public class HelloServiceBean implements HelloServiceLocal, HelloServiceRemote {
    public Person getPerson(String name) {
        return new Person(name);
    }
}

И у меня есть это в моем клиенте (в какой-то другой JVM):

  public static void main(String[] a) throws Exception{
        String name = "java2s";
        HelloServiceRemote service = null;

        service = (HelloServiceRemote)new InitialContext().lookup("HelloServiceBean/remote");
        Person p = service.getPerson(name));
   }

Когда мне нужно вызвать, например, метод getPerson() из моего EJB, который возвращает объект типа Person, как мой клиент поймет, что Person является классом?

Должен ли я переписать класс Person в другой раз в моем клиенте (а также в классе HelloServiceRemote), чтобы он мог понять, что такое Person? Или я должен включить проект Ejb в мой клиентский проект?

1 ответ

Решение

Вы должны включить JAR-файл EJB-проекта на стороне клиента, содержащий интерфейсы, сущности и другие используемые служебные классы.

Но предоставление Entity Beans на стороне клиента не является предпочтительным, вы можете получить больше информации об этом на http://www.ibm.com/developerworks/websphere/library/bestpractices/ejbs_access_entity_bean.html

Другие вопросы по тегам