Как получить доступ к бинам сущностей с удаленного клиента?
У меня есть это на сервере:
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