gpt4 book ai didi

java - 中断 EJB 查找

转载 作者:太空宇宙 更新时间:2023-11-04 07:30:46 25 4
gpt4 key购买 nike

是否可以中断挂起的 InitialContext.lookup 调用?

原因:我在 Glassfish 服务器上部署了一个 EJB jar。当我尝试从客户端进行远程 EJB 查找(通过 java web start 启动)时,当服务器无法访问时(例如服务器关闭或客户端未连接到互联网),查找将永远挂起。因此,我需要能够中断执行查找的线程,否则线程将永远运行。

我尝试设置ORBTCPConnectTimeouts,但它似乎被InitialContext忽略。

编辑

InitialContext ctx = new InitialContext();
ctx.lookup("EJBName"); // Here it hangs when server not reachable

最佳答案

根据我的经验,当JNDI服务不可用时,客户端会立即收到异常,我的意思是您不需要设置超时值来处理这种情况。您确定服务器离线时不会出现异常吗?可能是你没有正确处理它。

<小时/>

如果您不指定任何 JNDI 属性,它将假定客户端与服务器在同一台计算机上运行。

当客户端是远程时,您需要指示一些属性以允许客户端连接到 JNDI 服务器。您需要指示的最直观的属性是 IP 和 PORT。不然怎么知道服务器位置呢?

这些属性是键/值对的列表,主要可以通过两种不同的方式定义:使用 jndi.properties 文件或直接在客户端代码中使用其他签名:InitialContext(Hashtable 环境)。

这些 JNDI 属性取决于供应商,此 link举个例子。

您还需要将文件 gf-client.jar 添加到客户端的类路径。

您会注意到,当客户端正确实现时,没有必要设置超时。

关于java - 中断 EJB 查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17743989/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com