前のトピック: Java エージェントの自動応答生成次のトピック: Java エージェントに対する開発


例: EJB コール用の自動応答生成

以下の Java メソッドは、JNDI コンテキスト オブジェクトを作成し、EJB を実行できるサーバをコールし、API を呼び出します。

public void doEJBCall() throws Exception
    {
        Properties props = new Properties();
        props.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
        props.put(Context.PROVIDER_URL, "jnp://localhost:1099");

        /* 最初のリモート コール(オプション) */
        Context ctx = new InitialContext(props);

        /* 2 番目のリモート コール */
        EJB3UserControlBeanRemote remote = (EJB3UserControlBeanRemote) ctx.lookup("EJB3UserControlBean/remote");

        /* 3 番目のリモート コール */
        User u = remote.getUser("lisa_simpson");

        /* ローカル コール ... */
        System.out.println(u.getEmail());
    }

サーバが使用可能ではないと仮定します。 このメソッドを実行すると、接続を取得できないため、このコードは成功しません。

以下の response ディレクティブを使用して、このコードを強制的に成功させることができます。 最初のディレクティブは、InitialContext オブジェクトの作成をインターセプトします。 2 番目のディレクティブは、Context オブジェクトの lookup() メソッドをインターセプトします。 3 番目のディレクティブは、EJB3UserControlBeanRemote オブジェクトのすべてのメソッドをインターセプトします。

<respond class="javax.naming.InitialContext" method="&lt;init&gt;" args="1099"/>

<respond class="javax.naming.Context" method="lookup" args="EJB3UserControlBean/remote"/>

<respond class="com.itko.examples.ejb3.EJB3UserControlBeanRemote"/>