怎么在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启动的时候就执行某个类里的方法

Java中如何让web服务器启动的时候自动运行web程序中某个类的某个

本人很想知道ssh项目当容器启动时,项目中的java代码的执行流程,