我正在尝试在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>