Как получить доступ к бинам сущностей с удаленного клиента? - PullRequest
3 голосов
/ 02 октября 2010

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

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 Ответ

2 голосов
/ 15 ноября 2010

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

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

...