2012-10-05 3 views
0

로드 할 호출이 jar 파일 내의 클래스에서 시작되는 EAR의 LIB 디렉토리 내에있는 X.JAR과 같은 리소스로 JAR 파일을로드해야합니다 .JBoss 7.1의 리소스로 JAR 파일을로드 할 수 없습니다.

나는 이것이 매우 이상한 일이라는 것을 이해한다. 그러나 이것은 오래된 코드와 마찬가지이다.

getProtectionDomain().getCodeSource().getLocation(); 

과의 getResource

() 트릭을하지만 그들은 모두 물리적으로 존재하지 않는 위치를 반환 :

나는이 시도했다. JBoss의 관리 콘솔을 사용하여 EAR 파일을 배포합니다. 배포 폴더에 배치하지 마십시오. 불행히도이 단계는 변경할 수 없습니다.

+0

this.getClass().의 getResource처럼, MANIFEST.MF에 뭔가를 단지 이름을 넣어해야합니다 "") .getPath(); - 보호 도메인 객체와 동일한 경로를 반환했습니다. – Renan

+0

Thread.currentThread(). getContextClassLoader(). getResource ("/ lib/X.jar") - null을 반환합니다. – Renan

+0

.class.getClassLoader(). getResource ("/ lib/X .jar ") - null도 반환합니다. – Renan

답변

1

해결책은 다른 항아리 안에 항아리를 넣을 수 있습니다. 그런 다음 클래스 패스에있는 파일이며 getResource 메소드를 통해로드 할 수 있습니다.

현재, 시도한 getResource()의 전체 행을 게시 할 수 있습니까?

봅니다 .getClass()를 사용합니다. getClassLoader를을(). 같이 getResourceAsStream()

+0

흥미 롭긴하지만, 많은 것들이 엉망이 될 것입니다. 방금 JBoss 7의 모듈/클래스로 레슬링을 마쳤습니다. 다시 시도하고 싶지는 않습니다. – Renan

+0

.getClass(). getClassLoader(). getResourceAsStream()을 사용하십시오. – Teg

0

을 당신은 (

Class-Path:yourjar.jar   
Dependencies:com.blah.blah 
관련 문제