Glassfish 如何为不同类型的客户端获取客户端ip

Glassfish 如何为不同类型的客户端获取客户端ip,glassfish,client,ejb,ip,java-ee-5,Glassfish,Client,Ejb,Ip,Java Ee 5,如何在ejb拦截器中获取客户端ip?我的应用程序基于javaee5,部署在glassfish上,它有不同类型的客户端(ejb/MDB/jax ws-webservices),我有一个默认的拦截器,负责记录客户端ip等。我可以使用java.rmi.server.RemoteServer?我对其进行了测试,但发现以下错误: 服务器NotActivieException:不在远程呼叫中 有什么想法吗?不确定这是否可行。我认为EJB容器甚至不能访问HTTP请求,所以我认为即使我使用soap处理程序并将值

如何在ejb拦截器中获取客户端ip?我的应用程序基于javaee5,部署在glassfish上,它有不同类型的客户端(ejb/MDB/jax ws-webservices),我有一个默认的拦截器,负责记录客户端ip等。我可以使用java.rmi.server.RemoteServer?我对其进行了测试,但发现以下错误:

服务器NotActivieException:不在远程呼叫中


有什么想法吗?

不确定这是否可行。我认为EJB容器甚至不能访问HTTP请求,所以我认为即使我使用soap处理程序并将值放入消息上下文并在侦听器中获取它,也不可能检索客户端的IP地址?我可以在soap处理程序中访问客户端IP吗?如果您将EJB作为web服务公开(我从您的回复中了解到这一点),则可以通过注入@Resource WebServiceContext来获取服务本身的IP地址。这使您可以访问servlet请求,该请求包含一个getRemoteAddr()方法,该方法返回客户端ip地址。那么就不需要使用soap处理程序了。