开发者

Starting and reconnecting to a spring bean from console

I like to write a little server application being controlled by a little console app (start, pause, stop, etc). For the server spring should be used (part of it already exist). So 开发者_Python百科what I do to start the server is something like this:

  1. start a server thread and exit main method

and then, in the thread:

  1. load application context from xml
  2. start some worker threads connecting to beans doing stuff

Now I want the server to be stopped by another command. How can I connect to the already running context and shut it down?

Thanks for your help, Alexander


The classical way to manage running Java code is through JMX.
Spring lets you export beans as MBeans.

And for accessing JMX via the command line, look at the answers to this recent question:

Calling JMX MBean method from a shell script


You could create a pid file, when the server starts, it should log the pid to a file, server.pid. When you do a stop, you can read the process and kill it. Or even simpler, have a ever running thread in your main class which keeps looking for a file in some folder. As soon as the file becomes available or gets modified, it will stop the server.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜