Java 如何获取web服务客户端的IP地址?
我使用Eclipse(luna)、Tomcat8和Axis2创建了一个web服务。为此,我用Java编写了一个类“AddOperator”,将服务定义为以下内容:Java 如何获取web服务客户端的IP地址?,java,Java,我使用Eclipse(luna)、Tomcat8和Axis2创建了一个web服务。为此,我用Java编写了一个类“AddOperator”,将服务定义为以下内容: public class AddOperator { public int add(int x,int y) { return x+y; } } public class AddClientOpp { public static void main(String[] args) throws
public class AddOperator {
public int add(int x,int y) {
return x+y;
}
}
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());
}
}
我还创建了一个客户端,该客户端使用“AddClientApp”类创建此服务,如下所示:
public class AddOperator {
public int add(int x,int y) {
return x+y;
}
}
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());
}
}
现在,我需要通过我的web服务获得客户端的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;
}
或:
但我不知道在哪里可以将这些代码部分或方法集成到上面描述的web服务创建过程中
如果有人对此有想法,请告诉我该怎么做。这对我的项目非常重要
谢谢。您可以使用以下代码检索客户端地址:
MessageContext.getCurrentMessageContext().getProperty(MessageContext.REMOTE_ADDR)
为什么您要告诉我们关于
AddOperator
和addclientapp
?我正在讲述AddOperator和addclientapp,看看是否需要将IP地址检索代码集成到这些类中。如果是,那么正确的IP地址检索代码是什么?您的意思是AddOperator
可能比GetClientIP
更合适?我很困惑。不,我不是这个意思。但我只想知道,为了获得IP,我必须做什么以及如何进行?(我是网络服务领域的新手)!!