Javaプロジェクトには、JNDI
クラスへのスタブを取得するために使用するメソッドがありますFoo
。スタブを取得した後、このメソッドのメソッドを呼び出して計算を行います。これは、それがどのように見えるかを理解するためのコードです。
public static String getBar(String id, Map<String, Object> parameters) throws IOException {
return getFoo().getBar(id, parameters);
}
private static Foo getFoo() throws FooException {
try {
InitialContext ctx = new InitialContext
(FooProperties.getInstance().getProperties());
return (Foo) PortableRemoteObject.narrow(ctx.lookup(
"foo-application/" + Foo.JNDI_NAME + "/remote"),
Foo.class);
} catch (NamingException e) {
throw new FooException(FooException.FOO_REMOTE_METHOD_FAILURE, e);
}
}
Foo.getBar()
予期しない結果になるので、メソッド内で実際に何が起こっているのかを理解するためにデバッグを使用することにしました。しかし、Foo
インスタンスを取得し、jvmがメソッドの実行を開始した後、getBar()
EJBの内部メソッドの呼び出しのみが表示されます- invoke()
、、、およびそのようなもの。しかし、内部で何が起こっているかについての情報はありません。したがって、問題は、 (可能であれば)の
実行をどのように確認できるかということです。handleCallLocally()
calculateHash()
getBar()
getBar()