我创建了一个在 GlassFish Opensource Edition 上运行的测试 EJB3 应用程序。
我正在从同一主机连接到 GlassFish(客户端和应用程序服务器都在“本地主机”上运行)。
我使用 InitialContext.lookup() 获取一个远程(有状态的)对象,然后我与它进行交互,就像它是一个普通的 Java 对象一样。
唯一的问题是这个单次调用,需要15 秒:
FooRemoteService foors = (FooRemoteService)
context.lookup("java:global/FooApp/FooService!test.FooRemoteService");
我知道必须有某种“握手”和“初始化”,但这太慢了。
其余的交互(交换许多序列化对象的几个远程调用)只需要大约 0.1 秒!
我怎样才能找出它需要这么长时间的原因?