How to restart tomcat service from my java program

V

vanisathish

I need to restart the tomcat service, from within my application
whenever there is a configuration change. Because i'm loading some
static hashmap's,starting some threads, during tomcat start-up thro' a
plugin. Now when the user goes and change the configuration settings, i
need to re-start the threads & plugins.

So i think the only possibility that i've is to restart the tomcat
thro' program. I running tomcat5.5. on WinXP as a service. How do i do
this in my java program
Appreciate your input
 
K

kww731029

You can call a MS-DOS command in Java environment. For exampe, if I
stop "Symantec Core LC" service in my computer. My testing code is like
following.


import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;

/**
*
* @author Carl Wu
*
*/
public class StopServiceTest {

/**
* Test main method
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

StopServiceTest test = new StopServiceTest();
test.stopService("\"Symantec Core LC\"");

}

/**
* Stop a service in Windows XP
*
* @param serviceName the service name
* If there is space in service name string, please add "\" before and
after of the service name.
*/
protected void stopService(String serviceName) {
try {
String command = "net stop " + serviceName;
//print command name
System.out.println(command);
Process p = Runtime.getRuntime().exec(command);

//print execute results
InputStream is = p.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
is.close();

} catch (Exception e) {
e.printStackTrace();
}
}

}


The testing results are:

net stop "Symantec Core LC"
The Symantec Core LC service is stopping.
The Symantec Core LC service was stopped successfully.


May it helpful to you,

Carl Wu
 
V

vanisathish

Thanks for the update. But if i stop the Tomcat Service, how will start
again, since the tomcat is not there already. I'm using this approach
to start/stop other services in the way you've mentioned

Thanks
You can call a MS-DOS command in Java environment. For exampe, if I
stop "Symantec Core LC" service in my computer. My testing code is like
following.


import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;

/**
*
* @author Carl Wu
*
*/
public class StopServiceTest {

/**
* Test main method
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

StopServiceTest test = new StopServiceTest();
test.stopService("\"Symantec Core LC\"");

}

/**
* Stop a service in Windows XP
*
* @param serviceName the service name
* If there is space in service name string, please add "\" before and
after of the service name.
*/
protected void stopService(String serviceName) {
try {
String command = "net stop " + serviceName;
//print command name
System.out.println(command);
Process p = Runtime.getRuntime().exec(command);

//print execute results
InputStream is = p.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
is.close();

} catch (Exception e) {
e.printStackTrace();
}
}

}


The testing results are:

net stop "Symantec Core LC"
The Symantec Core LC service is stopping.
The Symantec Core LC service was stopped successfully.


May it helpful to you,

Carl Wu

I need to restart the tomcat service, from within my application
whenever there is a configuration change. Because i'm loading some
static hashmap's,starting some threads, during tomcat start-up thro' a
plugin. Now when the user goes and change the configuration settings, i
need to re-start the threads & plugins.

So i think the only possibility that i've is to restart the tomcat
thro' program. I running tomcat5.5. on WinXP as a service. How do i do
this in my java program
Appreciate your input
 
?

=?ISO-8859-1?Q?Arne_Vajh=F8j?=

Thanks for the update. But if i stop the Tomcat Service, how will start
again, since the tomcat is not there already. I'm using this approach
to start/stop other services in the way you've mentioned

You can obviously not stop and start Tomcat directly from
code running inside Tomcat.

I can see two roads forwards for you:

1) restart the web app and not the server
2) start an independent process that stop and start the service

Arne
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,776
Messages
2,569,603
Members
45,189
Latest member
CryptoTaxSoftware

Latest Threads

Top