3

私はこれをサーバーに持っています:

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

たとえば、EJBからgetPerson()メソッドを呼び出す必要がある場合、Personタイプのオブジェクトを返しますが、クライアントはPersonがクラスであることをどのように理解しますか?

クライアントでPersonクラス(およびHelloServiceRemoteクラス)をもう一度書き直して、Personとは何かを理解できるようにする必要がありますか?または、Ejbプロジェクトをクライアントプロジェクトに含める必要がありますか?

4

1 に答える 1

2

使用されるインターフェイス、エンティティ、およびその他のユーティリティクラスを含むEJBプロジェクトのjarをクライアント側に含める必要があります。

ただし、クライアント側でEntity Beansを公開することは望ましくありません。これに関する詳細については、http://www.ibm.com/developerworks/websphere/library/bestpractices/ejbs_access_entity_bean.htmlを参照してください。

于 2010-11-15T11:12:56.900 に答える