JBOSS EJB3项目启动执行一个任务

阅读更多

            在jboss的项目中,jboss启动的时候,带动一个类的执行,如果是web项目中,采用ServletContextListener可以实现。如果是非web项目采用jmx实现。

采用@Service和@Management实现

import org.jboss.ejb3.annotation.Management;
/**
 * 
 * 

功能描述,该部分必须以中文句号结尾。

* * 创建日期 2013-8-6
* @author $Author$
* @version $Revision$ $Date$ * @since 3.0.0 */ @Management public interface BeanLauncherManagement { public void start() throws Exception; }

 

 

/**
 * 
 * 

EJB3在 @Service不能使用自动注入,需要手动注入

* * 创建日期 2013-8-6
* @author $Author$
* @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);
}

 

 

/**
 * 

EJB3不能自动注入

* * 创建日期 2013-8-6
* @author $Author$
* @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

 



    
        Hello World
    

 

 

你可能感兴趣的:(jboss,jmx,@service,@Management,mbean)