1

在我们的 Java 项目中,我们有一个用于JNDI检索 stub 到 class的方法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()如果可能的话)的执行。

4

0 回答 0