Pergunta

Eu tenho isso no servidor:

class Person{...}

e

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

E eu tenho isso no meu cliente (em uma JVM diferente):

  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));
   }

Quando preciso ligar, por exemplo, o método getPerson () do meu EJB, que devolve um objeto do tipo de pessoa, como meu cliente vai entender que essa pessoa é uma classe?

Eu tenho que reescrever a classe da pessoa outra vez em meu cliente (e também a classe HeloserviceRemote), para que possa entender o que é uma pessoa? Ou tenho que incluir o projeto EJB no meu projeto de cliente?

Foi útil?

Solução

Você deve incluir o projeto JAR of EJB no lado do cliente, contendo interfaces, entidades e outras classes de utilitário usadas.

Mas expor os grãos de entidade no lado do cliente não é preferível, você pode obter mais informações sobre isso em http://www.ibm.com/developerworks/websphere/library/bestpractices/ejbs_access_entity_bean.html

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top