JBOSS EJB 3プロジェクトの起動によるタスクの実行
2511 ワード
jbossのプロジェクトでは、jbossが起動すると、クラスの実行が牽引され、webプロジェクトであればサーブレットContextListenerで実現できます.非webプロジェクトであればjmx実装を採用します.
@Serviceと@Managementで実現
jmxによる実現は以下の通りである.
META-INF/jboss-service.xml
@Serviceと@Managementで実現
import org.jboss.ejb3.annotation.Management;
/**
*
* <p> , 。<p>
*
* 2013-8-6<br>
* @author $Author$<br>
* @version $Revision$ $Date$
* @since 3.0.0
*/
@Management
public interface BeanLauncherManagement
{
public void start() throws Exception;
}
/**
*
* <p>EJB3 @Service , <p>
*
* 2013-8-6<br>
* @author $Author$<br>
* @version $Revision$ $Date$
* @since 3.0.0
*/
@Service
public class BeanLauncher implements BeanLauncherManagement
{
public void start() throws Exception
{
System.out.println("jboss ");
}
}
jmxによる実現は以下の通りである.
import org.jboss.system.ServiceMBean;
public interface HelloWorldServiceMBean extends ServiceMBean {
String getMessage();
void setMessage(String message);
}
/**
* <p>EJB3 <p>
*
* 2013-8-6<br>
* @author $Author$<br>
* @version $Revision$ $Date$
* @since 3.0.0
*/
import org.jboss.system.ServiceMBeanSupport;
public class HelloWorldService extends ServiceMBeanSupport implements HelloWorldServiceMBean {
private String message;
public String getMessage() {
System.out.println("getMessage()=" + message);
return message;
}
public void setMessage(String message) {
System.out.println("setMessage(" + message + ")");
this.message = message;
}
}
META-INF/jboss-service.xml
<?xml version="1.0" encoding="UTF-8"?>
<server>
<mbean code="com.easy.jmx.HelloWorldService" name="www.chengang.com.cn:service=HelloWorld">
<attribute name="Message">Hello World</attribute>
</mbean>
</server>