StartTomcatBean.java
package jmx;
public interface
StartTomcatMBean{
public abstract int tomcatStart();
public abstract int tomcatStop();
}
======================================================================
StartTomcat.java
package jmx;
import java.io.*;
public class StartTomcat
implements StartTomcatMBean
{
public StartTomcat()
{
}
public int
tomcatStart()
{
int code = 0;
try
{
Runtime r = Runtime.getRuntime();
Process pro =
r.exec("E:\\apache-tomcat-5.5.27\\bin\\startup.bat");
BufferedReader stdInput = new BufferedReader(new
InputStreamReader(pro.getInputStream()));
String s = null;
System.out.println("shutdown Tomcat....");
while((s =
stdInput.readLine()) != null)
System.out.println(s);
code = pro.waitFor();
}
catch(Exception e)
{
System.out.println("tmocatStart_error...");
e.printStackTrace();
}
return code;
}
public int tomcatStop()
{
int code = 0;
try
{
Runtime r = Runtime.getRuntime();
Process pro = r.exec("E:\\apache-tomcat-5.5.27\\bin\\shutdown.bat");
BufferedReader stdInput = new BufferedReader(new
InputStreamReader(pro.getInputStream()));
for(String s = null;
(s = stdInput.readLine()) != null;)
System.out.println(s);
code = pro.waitFor();
}
catch(Exception exception) { }
return code;
}
}
======================================================================
jmxAgent.java
package jmx;
import
java.io.PrintStream;
import java.rmi.registry.LocateRegistry;
import
java.util.HashMap;
import java.util.Map;
import javax.management.*;
import javax.management.remote.*;
// Referenced classes of package
jmx:
// StartTomcat
public class jmxAgent
{
public jmxAgent()
{
server = null;
server =
MBeanServerFactory.createMBeanServer("JmxAgent");
intiAgent();
}
public void intiAgent()
{
JMXServiceURL
serviceUrl = null;
ObjectName connectorName = null;
ObjectName WeblogicControlMBeanName = null;
try
{
LocateRegistry.createRegistry(7777);
serviceUrl = new
JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:7777/server");
Map environment = new HashMap();
environment.put("jmx.remote.jndi.rebind", "true");
connectorName
= new ObjectName("JmxAgent:name=RmiConnector");
WeblogicControlMBeanName = new ObjectName("JmxAgent:name=tomcatControl");
JMXConnectorServer connector =
JMXConnectorServerFactory.newJMXConnectorServer(serviceUrl, environment,
server);
server.registerMBean(new StartTomcat(),
WeblogicControlMBeanName);
server.registerMBean(connector,
connectorName);
connector.start();
}
catch(Exception e)
{
e.printStackTrace();
}
}
public static void main(String args[])
{
new jmxAgent();
System.out.println("jmxAgent Start.........");
}
private MBeanServer server;
}
======================================================================
Client.java
package jmx;
import java.io.IOException;
import java.io.PrintStream;
import java.net.MalformedURLException;
import javax.management.*;
import javax.management.remote.*;
//
Referenced classes of package jmx:
// StartTomcatMBean
public class Client
{
public Client()
{
}
public void foo()
throws MalformedObjectNameException,
NullPointerException, IOException
{
ObjectName
resourceControlMBeanName = null;
java.util.Map creationEnvirnoment =
null;
java.util.Map connectionEnvironment = null;
try
{
resourceControlMBeanName = new
ObjectName("JmxAgent:name=tomcatControl");
JMXServiceURL
serviceURL = new
JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:7777/server");
JMXConnector cntor = JMXConnectorFactory.newJMXConnector(serviceURL,
creationEnvirnoment);
cntor.connect(connectionEnvironment);
javax.management.MBeanServerConnection mbsc =
cntor.getMBeanServerConnection();
StartTomcatMBean resource =
(StartTomcatMBean)MBeanServerInvocationHandler.newProxyInstance(mbsc,
resourceControlMBeanName, StartTomcatMBean.class, false);
resource.tomcatStart();
cntor.close();
}
catch(RuntimeErrorException e)
{
System.out.println((new StringBuilder("Error 1--->")).append(e).toString());
e.printStackTrace();
}
catch(MalformedURLException e)
{
System.out.println((new StringBuilder("Error 2--->")).append(e).toString());
e.printStackTrace();
}
}
}
댓글 없음:
댓글 쓰기