java - Glassfish 的慢 "lookup"时间

标签 java glassfish ejb rmi

我创建了一个在 GlassFish Opensource Edition 上运行的测试 EJB3 应用程序。

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

我使用 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);

此致。

关于java - Glassfish 的慢 "lookup"时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10163658/

相关文章:

java - 如何在Windows中设置sbt代理

java - 用于搜索字符串三元组的最有效的 Java 数据结构

java - 按钮是_armed_是什么意思?

testing - Arquillian,(嵌入式)Glassfish 和 JMS : How to test a worker?

ejb - CDI:@Decorator @Stateless

java - EJB : Two stateless objects use two different transaction

java - 设置JList的最大容量?

jpa - 如何在多个数据库(分布式系统)中保留相同的 JPA 实体?

java - weblogic服务器集群环境

css - JSF 不更新 CSS 中的更改