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

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

采用@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>

 

 

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