2013-08-27 6 views
1

최근에 JBoss AS 7.로 옮겼습니다. OSGi를 기반으로하고 모든 모듈이 분리되어 있기 때문에 문제가 있습니다.JBoss AS 7 사용자 정의 클래스 로더가 작동하지 않습니다.

우리 jar 중 하나는 JBossS 모듈 외부의 지정된 디렉토리에서 URLclassloader에 의해로드됩니다.

Class[] parameters = new Class[]{URL.class}; 
URLClassLoader sysloader = (URLClassLoader)ClassLoader.getSystemClassLoader(); 
Class sysclass = URLClassLoader.class; 
Method method = sysclass.getDeclaredMethod("addURL",parameters); 
method.setAccessible(true); 
method.invoke(sysloader,new Object[]{ flist[i].toURI().toURL()}); 

flist [i]에는로드 할 전체 경로가있는 jar 파일이 들어 있습니다.

이전에는 AS 7 이후에이 클래스가로드되지 않습니다.

이 jar를 modules 폴더에 추가하고 종속성을 지정할 수 있다는 것을 알고 있습니다. 그러나 우리는 이것을 원한다.

해결 방법은 있습니까?

+0

FWIW를 참조 할

  • 사용 jboss-deployment-structure.xml JBoss AS 7은 OSGi를 기반으로하지 않습니다. 그것은 고립을 위해 JBoss 모듈을 사용하지만 OSGi가 아닙니다. 그러나 OSGi를 지원합니다. –

  • +0

    그럼에도 불구하고이 모듈화로 인해 문제가 발생했습니다. –

    +0

    이 문제를 극복 할 방법이 있습니까? 또는 올바른 접근 방식은 무엇이었을 까? –

    답변

    0

    JBoss AS 7은 OSGi를 기반으로하지 않으며 자체 모듈 시스템 (JBoss Modules)을 사용합니다. 당신이하고있는 일 (클래스 로더에 반영)은 규칙에 위배되며 완전히 지원되지 않고 우연히 만 작동합니다. 당신이해야 당신은 다음

    • create 당신의 JAR의 보스 모듈 (링크 데이터베이스 모듈입니다 있지만 JAR와 함께 작동합니다) 해당 모듈