obtener la dirección ip del cliente
Buenos días..
Me encuentro en la necesidad de obtener la direccion ip del equipo que se conecte a mi aplicación en la intranet, utilizando glassfish, leyendo encontre que se puede hacer de manera sencilla mediante un servlet sin embargo la pregunta es si se puede hacer desde un EJB, y si pudiesen darme un ejemplo sencillo.
Gracias.
- Inicie sesión o regístrese para enviar comentarios
Me encontré ésto a ver si te
Me encontré ésto a ver si te sirve...
Dado que EJB es un componente
Dado que EJB es un componente de la capa de procesamiento no podrias obtener la direccion IP del cliente que consulte el recurso, porque el recurso debe ser invocado desde la capa de presentacion. Lo que puedes hacer es enviar como parametro un objeto que tenga esa informacion o tu mismo enviarla. La puedes obtener desde cualquier lugar que puedas obtener el Contexto del servlet o el objeto request con esta linea
¿Por qué desde un EJB?
Creo que lo mejor es revisar tu diseño y no pretender obtener información en el biz tier que le corresponde al presentation tier.
El contexto de un bean EJB no tiene a su disposición la dirección IP de un cliente que realiza una invocación remota. No la tiene porque normalmente no es algo que se necesite en el tier de la lógica de negocio.
En versiones anteriores de JBoss existe un hack para obtener la IP del cliente a partir del nombre del Thread, pero no sucede así con otros servidores.
Prueba con esto, es desde un
Prueba con esto, es desde un servlet:
String ip = request.getRemoteAddr();
String host = request.getRemoteHost();
Hola a todos gracias por
Hola a todos gracias por contestar, efectivamente logre acceder a la ip del cliente desde el servicio bajando el contexto como dice @java.daba.doo
@bferro es un mantenimiento que se nos entrego a medias, por lo que ahora la prioridad son fixes aunque concuerdo contigo en que se deberia de realizar una buena revisión al diseño.
Saludos.