Java “慢”;查阅“;玻璃鱼时代

Java “慢”;查阅“;玻璃鱼时代,java,glassfish,ejb,rmi,Java,Glassfish,Ejb,Rmi,我已经创建了一个在GlassFish开源版上运行的测试EJB3应用程序 我从同一台主机连接到GlassFish(客户端和应用程序服务器都在“localhost”上运行) 我使用InitialContext.lookup()获取一个远程(有状态)对象,然后像普通Java对象一样与它交互 唯一的问题是这一次呼叫,需要15秒: FooRemoteService foors = (FooRemoteService) context.lookup("java:global/FooApp/FooS

我已经创建了一个在GlassFish开源版上运行的测试EJB3应用程序

我从同一台主机连接到GlassFish(客户端和应用程序服务器都在“localhost”上运行)

我使用InitialContext.lookup()获取一个远程(有状态)对象,然后像普通Java对象一样与它交互

唯一的问题是这一次呼叫,需要15秒

FooRemoteService foors = (FooRemoteService) 
    context.lookup("java:global/FooApp/FooService!test.FooRemoteService");
我知道必须有某种“握手”和“初始化”,但这太慢了

其余的交互(几个远程调用和许多被交换的序列化对象)只需要大约0.1秒


我怎样才能找出花费这么长时间的原因呢?

我建议您在指定主机ip的初始上下文中声明,因为您可能在不同的主机中部署了相同的应用程序,而EJB规范会在网络中搜索它

Properties props = new Properties();
props.put(Context.PROVIDER_URL, "jnp://ip:1099");
InitialContext ctx = new InitialContext(props);

致以最诚挚的问候。

在您第一次查找它时,它正在实例化
FooRemoteService
。。。它到底在做什么强化处理?一点也不。。。如果我用本地虚拟机“新建”它,需要几毫秒