0 0

java如何获取web容器(tomcat,weblogic)IP,端口号5

package com.meritit.cn;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;

/**
* @author:gaowp
* @date:2009-3-19
*/
public class TestServlet extends HttpServlet{

    private static final long serialVersionUID = 1L;
    public static String webContainerIp = "";
    public static String webContainerPort = "";
    public void init(ServletConfig config) throws ServletException {
        super.init(config);
       
        //如何获取此程序所部署的容器(WEBLOGIC,TOMCAT)IP,端口号?
       
        //TODO 
    }

}

请将你的代码填入上述代码注释块下,或给出别的思路,谢谢!

问题补充:
pansonphy 写道
System.out.println(request.getLocalAddr());
System.out.println(request.getLocalPort());


试一下这个


问题时request从哪获取的,只有在发生http请求的地方可以获取到request,在init(ServletConfig config)方法里是无法获取到的呀

问题补充:补充一下需求:我需要建立一个servlet,在程序启动的时候获取到web容器的IP:PORT,然后将IP:PORT存储在内存变量中,请大家指引,谢谢!

问题补充:
飞雪无情 写道
哦。原来你是想在启动的时候获得啊,启动的时候包含最全面的信息是借口ServletContext。但是他里面没有端口和ip,端口和ip是放在request中的,我不知道你要这个有什么用,但是你可以采用折中的方法,当请求你的根站点时得到端口和ip,然后放在内存中一直使用就行了。


只所以要在加载至内存中,是为了解决集群调度下的调度重复执行问题。其实调度也可以考虑单独部署,但是考虑到原有项目调度复杂,而且比较多,故想采取判断集群下的web容器IP:PORT来解决这个问题,不过仍然感谢您的热情参与,谢谢!
2010年7月05日 19:16

4个答案 按时间排序 按投票排序

0 0

设置需要的Key,例如Tomcat服务器:

编辑文件${tomact-dir}/bin/catalina.bat, 添加以下内容即可:
set JAVA_OPTS=-D<key>="<value>"
如:
set JAVA_OPTS=-Dreyo.localPort="8081"

然后在程序取出 System.getProperty("reyo.localPort")了

详情参看:http://www.cnblogs.com/interdrp/p/3730878.html

2014年9月15日 16:33
0 0

哦。原来你是想在启动的时候获得啊,启动的时候包含最全面的信息是借口ServletContext。但是他里面没有端口和ip,端口和ip是放在request中的,我不知道你要这个有什么用,但是你可以采用折中的方法,当请求你的根站点时得到端口和ip,然后放在内存中一直使用就行了。

2010年7月06日 11:15
0 0

System.out.println(request.getLocalAddr());
System.out.println(request.getLocalPort());


试一下这个

2010年7月06日 09:29
0 0

在servlet的service方法里可以得到request对象,实用request的getRemoteAddr()和getServerPort()方法可以分别获得IP地址和端口号.

2010年7月06日 08:23

相关推荐

Global site tag (gtag.js) - Google Analytics