我的应用程序是一个Spring framework 3.1.2
基于Web的应用程序部署Apache tomcat 6
。
我需要让我的运行应用程序端口号和应用程序(服务器)的主机名启动。 这样我就重写它的一个属性,它需要其他bean的初始化。
请问弹簧提供给检索这些细节,并把它放在服务器启动任何选项?..
我的应用程序是一个Spring framework 3.1.2
基于Web的应用程序部署Apache tomcat 6
。
我需要让我的运行应用程序端口号和应用程序(服务器)的主机名启动。 这样我就重写它的一个属性,它需要其他bean的初始化。
请问弹簧提供给检索这些细节,并把它放在服务器启动任何选项?..
看看到以前问这两个问题: 从Tomcat获取服务器的端口号有一个请求和我需要知道HTTP和HTTPS端口我的Java web应用程序是在Web应用程序启动时运行 。 在那里,你将看到如何从连接端口获取,连接器还具有getDomain方法,它会给你的主机名。
既然你知道如何使用Spring,你可以有一个bean能使那些细节,并提供他们需要这些实例化细节其他豆。 有几个方式做到这一点:
1)创建Spring工厂Bean,它会得到端口,主机名和实例你想豆
2)具有独立的豆持有这些细节,为您和您使用的bean来构建另一个
3)您覆盖使用的端口和域和实例化时豆,需要他们有一个会读他们的新豆一init方法您的应用程序的详细信息
下面是获得端口的DIP地址码
class IPAddressDemo{
public static String getIpAddressAndPort1() throws MalformedObjectNameException, NullPointerException,
UnknownHostException {
MBeanServer beanServer = ManagementFactory.getPlatformMBeanServer();
Set<ObjectName> objectNames = beanServer.queryNames(new ObjectName("*:type=Connector,*"),
Query.match(Query.attr("protocol"), Query.value("HTTP/1.1")));
String host = InetAddress.getLocalHost().getHostAddress();
String port = objectNames.iterator().next().getKeyProperty("port");
String ipadd = "http" + "://" + host + ":" + port;
System.out.println(ipadd);
return ipadd;
}
}
Tomcat将默认的TCP / IP端口号运行8080
。
脚步
C:\apache-tomcat-6.0.18\conf\server.xml
(其中已安装的tomcat的地方) 在server.xml文件中,找到连接器端口看起来像以下
<connector port="8080" protocol="HTTP/1.1" connectiontimeout="20000" redirectport="8443"> </connector>
在连接器标签端口是你的端口号。
查找主机名:
脚步
1. Navigate to `C:\WINDOWS\system32\drivers\etc`
要么
开始 - >所有程序 - >运行 - >输入“驱动程序”(不带引号) - >等
127.0.0.1 localhost
从此,你可以了解你的主机名是什么。
谢谢。
已传递到您的doGet或doPost方法的ServletRequest对象具有getServerName()
和getServerPort()
提供此信息的方法。
例:
public void doGet(ServletRequest request, ServletResponse response) {
System.out.println("Host Name = " + request.getServerName());
System.out.println("Port Number = " + request.getServerPort());
}