الحصول على عنوان IP من عميل للحصول على خدمة ويب

StackOverflow https://stackoverflow.com/questions/1641594

  •  08-07-2019
  •  | 
  •  

سؤال

وأستخدمه JAX-WS وأواجه مشكلة في استرجاع المعلومات العميل الذي يستهلك خدمة ويب. لقد تبين كيفية القيام بذلك مع JAX-RPC، والقط اباتشي المحور، ولكن ليس مع JAX-WS. هل لديها فكرة عن هذا؟

هل كانت مفيدة؟

المحلول

وماذا عن هذا:

@WebService
public class MyService {

  @Resource
  WebServiceContext wsContext; 

  /**
   * Web service operation
   */ 
  @WebMethod 
  public String myMethod() { 

    MessageContext mc = wsContext.getMessageContext();
    HttpServletRequest req = (HttpServletRequest)mc.get(MessageContext.SERVLET_REQUEST); 
    System.out.println("Client IP = " + req.getRemoteAddr()); 

  }

} 

نصائح أخرى

وأو هذا:

@Path("terminal")
public class terminal {
    @Context private javax.servlet.http.HttpServletRequest hsr;
    @GET
    @Path("get_ip")
    @Produces("text/plain")
    public String get_ip()
    {
            return ip = hsr.getRemoteAddr();
    }
}

وأخذ تلميح كبير وتقدير من زين ودارين الجواب / تحرير، حاولت ذلك، وأنها تعمل أيضا.

@GET
@Produces(MediaType.TEXT_PLAIN)
@Path("ip")
public String sayIP(@Context HttpServletRequest req, @QueryParam("p1") String p1, ...) {
    return req.getRemoteAddr();
}
public String getIp(@Context HttpServletRequest req) {
    return req.getRemoteHost();
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top