ApacheAxis2 Webservice-获取客户端的端口和ip地址

ApacheAxis2 Webservice-获取客户端的端口和ip地址,apache,web-services,axis2,axis,Apache,Web Services,Axis2,Axis,我有一个ApacheAxis2 web服务,我正在尝试记录客户端ip地址和端口号。我可以通过以下方式获取ip地址: MessageContext inMessageContext = MessageContext.getCurrentMessageContext(); String ip = (String)inMessageContext.getProperty("REMOTE_ADDR"); 如何获取它来自的端口号 我是axis2的新手,我无法理解你的问题。您正在尝试访问请求者端口号还

我有一个ApacheAxis2 web服务,我正在尝试记录客户端ip地址和端口号。我可以通过以下方式获取ip地址:

MessageContext inMessageContext = MessageContext.getCurrentMessageContext();  
String ip = (String)inMessageContext.getProperty("REMOTE_ADDR");

如何获取它来自的端口号

我是axis2的新手,我无法理解你的问题。您正在尝试访问请求者端口号还是请求URL端口号

下面的链接可能对您获取请求URL端口号很有用。请查收

public class MyServlet extends AxisServlet
{   
    protected MessageContext createMessageContext( HttpServletRequest request, HttpServletResponse response, boolean invocationType ) throws IOException
    {
        MessageContext mc = super.createMessageContext( request, response, invocationType );
        URL url = new URL( request.getRequestURL().toString() );
        mc.setProperty( "myPort", url.getPort() );
        return mc;      
    }
}
当然,您必须将类名放在axis2/../web.xml中,然后重新启动tomcat。然后,您可以检查任何axis2调用中的端口号:

MessageContext mc = MessageContext.getCurrentMessageContext();
int port = ( Integer ) mc.getProperty( "myPort" );
资料来源: