从Wildfly中的WAR访问WEB-INF / lib中的文件

时间:2015-01-06 18:19:06

标签: web singleton startup wildfly vfs

我正在尝试在WildFly上部署Java EE应用程序,这个应用程序包含一个EJB,它使用应用程序jar执行任务,这个jars文件保留在.war文件中的WEB-INF / lib中,下面是一段代码。

@Singleton
@Startup
public class ORMClassFinder {

/**
 * Path para inicio da leitura de todos os jars do projeto.
 */
private static final String PATH_BASE = "/WEB-INF/lib/";


/**
 * Metodo que inicia a busca listando todos os jars do projeto. Ele é executado no start da aplicação.
 */
@PostConstruct
public void listAllJars() {
    String[] tmpPath = this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath().toString()
                    .split( PATH_BASE );
    File file = new File( tmpPath[0] + PATH_BASE );

新File()结果使用的URI是:

C:/wildfly-8.2.0.Final/bin/content/ciss-erp-web-0.0.1-SNAPSHOT.war/WEB-INF/lib/

但是,我的wildfly文件树中不存在此目录,此文件夹存在于:

C:/wildfly-8.2.0.Final/standalone/deployments/ciss-erp-web-0.0.1-SNAPSHOT.war/WEB-INF/lib/

我不明白为什么生成了 bin / content 的URI,有时候有人遇到过这个问题吗?

我认为如果存在更正确的解决方案,因为Wildfly已经需要加载所有资源进行部署,我搜索类加载,而Wildfly使用VFS2,也许可以用它来查找路径和文件?< / p>

0 个答案:

没有答案