ome*_*ega 9 java spring spring-mvc
我的应用程序是Spring framework 3.1.2
部署在其上的基于Web的应用程序Apache tomcat 6
.
我需要在应用程序(服务器)启动时获取正在运行的应用程序端口号和主机名.所以我会在属性上覆盖它,并且需要其他bean初始化.
spring是否提供了检索这些详细信息并在Server Startup上设置它的任何选项?
看一下之前提出的两个问题:从tomcat获取服务器端口号而没有请求,我需要知道我的java webapp在webapp启动时运行的HTTP和HTTPS端口.在那里,您将看到如何从连接器获取端口,连接器还具有可为您提供主机名的getDomain方法.
既然你知道如何在没有spring的情况下获得,那么你可以拥有一个获取这些细节的bean,并为需要这些实例化细节的其他bean提供它们.有几种方法可以做到这一点:
1)创建Spring工厂bean,它将获得你想要的端口,主机名和实例化bean
2)拥有单独的bean来保存这些细节,并使用该bean构建其他bean
3)您使用端口和域覆盖应用程序详细信息,并且在实例化需要它们的bean时,有一个init方法可以为新bean读取它们
小智 5
这是获取端口和 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;
}
}
Run Code Online (Sandbox Code Playgroud)
Har*_*Raj -3
默认情况下,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>
Run Code Online (Sandbox Code Playgroud)连接器标签中的端口是您的端口号。
查找主机名:
脚步
1. Navigate to `C:\WINDOWS\system32\drivers\etc`
Run Code Online (Sandbox Code Playgroud)
或者
开始->所有程序->运行->输入“drivers”(不带引号)->等
Run Code Online (Sandbox Code Playgroud)127.0.0.1 localhost
由此您可以了解您的主机名是什么。
谢谢。
归档时间: |
|
查看次数: |
31896 次 |
最近记录: |