如何在JBoss AS7中获取EJB方法的调用远程客户端的地址

时间:2012-10-18 12:38:20

标签: java ejb-3.0 jboss7.x

我有一个分布式应用程序,它由一个服务器组成,JBoss AS7前端和应用程序的后端运行。 在网络中的其他机器上运行的几个客户端获取JBoss的JNDI初始上下文以获取某些对象。 每个客户端都是唯一的,需要在不对其进行任何配置的情况下进行识别。我的方法是获取他们的地址并映射与他们相关的数据(物品池,在所有连接的客户端之间均匀映射)。

如何获取EJB方法的调用客户端的IP地址?

我已经找到了'hacks'来描述如何从线程名称中获取信息(例如在JBoss 4.x中使用),但这总是返回如下内容:

  

EJB default - 7

请参阅How can you get the calling ip address on an ejb call?

如果您在某些上下文中提供代码段或方法调用,是否可以添加它的来源?我通过搜索 EJB3 Remoting3 和类似的东西找不到东西

1 个答案:

答案 0 :(得分:0)

只是一个想法,

可以使用可以通过基于休息的Web服务层公开您的ejb。如果这样做,很容易找到远程主机名,也可以使用过滤器servlet来允许或禁止请求。

假设您将使用JAX-RS,您可以使用@EJB将bean注入rest类。