我有一个分布式应用程序,它由一个服务器组成,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 和类似的东西找不到东西
答案 0 :(得分:0)
只是一个想法,
可以使用可以通过基于休息的Web服务层公开您的ejb。如果这样做,很容易找到远程主机名,也可以使用过滤器servlet来允许或禁止请求。
假设您将使用JAX-RS,您可以使用@EJB将bean注入rest类。