如何使用JBoss以编程方式获取当前的EAR位置

ptd*_*dev 7 java ear jboss seam

有没有人知道如何从同一个EAR中的Java代码以编程方式获取JBoss中部署的EAR的文件系统中的绝对路径?

我需要这个,因为我想在部署时将一些EAR内部的文件复制到文件系统的另一部分.

谢谢大家!

小智 3

我就是这样做的。
EAR 有一个服务 MyService,我可以在其中处理 EAR 内容:

import org.jboss.system.ServiceControllerMBean;
import org.jboss.system.ServiceMBeanSupport;

public class MyService extends ServiceMBeanSupport {

    public void workWithEar() 
    {
        ServiceControllerMBean serviceController = (ServiceControllerMBean) MBeanProxy.get(
                    ServiceControllerMBean.class,
                    ServiceControllerMBean.OBJECT_NAME, server);
        // server is ServiceMBeanSupport member

        ClassLoader cl = serviceController.getClass().getClassLoader();

        String path = cl.getResource("META-INF/jboss-service.xml").getPath()
        InputStream file = cl.getResourceAsStream("META-INF/jboss-service.xml");
    }
}
Run Code Online (Sandbox Code Playgroud)