我使用Eclipse(luna),Tomcat8和Axis2创建了一个Web服务。为此,我用Java编写了一个类' AddOperator'将服务定义如下:
public class AddOperator {
public int add(int x,int y) {
return x+y;
}
}
我还创建了一个客户端,他使用“AddClientOpp'”类来构建此服务。如下:
public class AddClientOpp {
public static void main(String[] args) throws RemoteException {
AddOperatorStub stub = new AddOperatorStub();
Add add = new Add();
add.setX(25);
add.setY(30);
System.out.println(stub.add(add).get_return());
}
}
现在,我需要获取客户的IP地址,以便我的网络服务。我搜索并找到了一些允许这样做的方法和部分代码,例如:
import javax.servlet.http.HttpServletRequest;
//...
private static String getClientIp(HttpServletRequest request) {
String remoteAddr = "";
if (request != null) {
remoteAddr = request.getHeader("X-FORWARDED-FOR");
if (remoteAddr == null || "".equals(remoteAddr)) {
remoteAddr = request.getRemoteAddr();
}
}
return remoteAddr;
}
或:
import java.net.*;
import java.io.*;
import java.applet.*;
public class GetClientIP extends Applet {
public void init() {
try {
InetAddress Ip =InetAddress.getLocalHost();
System.out.println("IP:"+Ip.getHostAddress());
} catch(Exception e) {
e.printStackTrace();
}
}
}
但是我不知道将这些代码部分或方法集成到上面描述的我的Web服务创建过程中的位置!!
如果有人对此有所了解,请告诉我我该做什么。这对我的项目来说非常重要!!
感谢。
答案 0 :(得分:0)
您可以使用以下代码检索客户端地址:
MessageContext.getCurrentMessageContext().getProperty(MessageContext.REMOTE_ADDR)