怎么在tomcat启动时自动执行一个java类 获得本项目服务器的IP和端口
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么在tomcat启动时自动执行一个java类 获得本项目服务器的IP和端口相关的知识,希望对你有一定的参考价值。
获得项目服务器的IP大概做法是在配置文件里面进行配置,可以使服务器已启动便执行,示例如下:
启动服务器的时候启动一个类,可以在web.xml中配置,如下:<servlet>
<servlet-name></servlet-name>
<servlet-class></servlet-class>
<init-param>
<param-name>basedir</param-name>
<param-value></param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
指明你需要启动的servlet即可 参考技术A @PostConstruct
public void init()
try
MBeanServer beanServer = ManagementFactory.getPlatformMBeanServer();
Set<ObjectName> objectNames = beanServer.queryNames(new ObjectName("*:type=Connector,*"),
Query.match(Query.attr("protocol"), Query.value("HTTP/1.1")));
serverIp = InetAddress.getLocalHost().getHostAddress();
serverPort = objectNames.iterator().next().getKeyProperty("port");
catch (Exception e)
e.printStackTrace();
这段代码可以获取到,但是存在一个问题就是在Linux环境下启动项目的时候,
objectNames.iterator().next().getKeyProperty("port");这句会抛出异常:
java.util.NoSuchElementException。如果仅仅是在Windows下的话,上面的代码完全OK 参考技术B 很简单,在创造tomcat 实例添加构造方法即可,简单的 在web 框架上操作也可以啊。
不懂你为什么获得本项目服务器的IP和端口,这是你们作业还是谁出的题啊
ip就是本机ip 你自己肯定知道啊localhostL:8080 tomcat默认8080 参考技术C 写一个servlet 参考技术D http://www.blogjava.net/xzclog/archive/2011/09/29/359789.html 楼上的说的不太明白,这个解释的比较清楚。具体servlet怎么写就是另一个问题了
Centos开机自动执行shell脚本启动tomcat服务器
有时候需要在Centos系统启动之后自动完成项目的启动,项目部署在tomcat中时,如果Centos关机后开机,各个项目也就已经被停掉了,然后需要自己一个一个的手动去开启各个项目对应的tomcat服务器,想想都比较麻烦,那么如何才能实现,当Centos启动之后,项目就自动也跟着启动了呢?
下面就介绍下Centos如何开机是自动启动shell脚本,通过shell脚本的命令来启动项目对应的tomcat服务器。
一、切换到/etc/init.d目录下
cd /etc/init.d
二、制作sh脚本:vim startTomcat.sh
#!/bin/sh #add for chkconfig #chkconfig:2345 70 30 #description:the description of the shell service iptables stop cd /home/tomcat7/bin ./catalina.sh start
说明:
2345是指脚本的运行级别,即在2345这4种模式下都可以运行,234都是文本界面,5就是图形界面X
70是指脚本将来的启动顺序号,如果别的程序的启动顺序号比70小(比如44、45),则脚本需要等这些程序都启动以后才启动。
30是指系统关闭时,脚本的停止顺序号。
linux 下shell脚本执行多个命令的方法:
1.每个命令之间用;隔开
说明:各命令的执行给果,不会影响其它命令的执行。换句话说,各个命令都会执行,但不保证每个命令都执行成功。
2.每个命令之间用&&隔开
说明:若前面的命令执行成功,才会去执行后面的命令。这样可以保证所有的命令执行完毕后,执行过程都是成功的。
3.每个命令之间用||隔开
说明:||是或的意思,只有前面的命令执行失败后才去执行下一条命令,直到执行成功一条命令为止。
三、给脚本加上可执行权限:
chmod +x startTomcat.sh
四、利用chkconfig命令将脚本设置为自启动:chkconfig --add startTomcat.sh
五、重启下机器试试:reboot
本文出自 “SimpleLife” 博客,请务必保留此出处http://simplelife.blog.51cto.com/9954761/1882097
以上是关于怎么在tomcat启动时自动执行一个java类 获得本项目服务器的IP和端口的主要内容,如果未能解决你的问题,请参考以下文章
java程序里运行tomcat启动的时候就执行某个类里的方法
spring再tomcat启动后,初始化完成后,自动执行一次某个类,怎么做
请教大神,比如说我写了一个java程序,我想让tomcat启动时自动去执行这个java程序。如何实现?
java程序里运行tomcat启动的时候就执行某个类里的方法