2014-04-14 2 views
0

웹 응용 프로그램을 JBOSS 7으로 마이 그 레이션하고 있는데 Class.forName 메소드에 문제가 있습니다.JBOSS 7에서 class.forName을 사용하여 클래스를 동적으로로드하는 방법

나는 기본적으로 2 개 단지, 하나 개의 다른 모듈에 각각 있습니다

  • CampusComponentsJava-1.4.4.jar
  • CampusGateway-2.5.3-SNAPSHOT.jar

코드를 CampusComponentsJava에서 CampusGateway-2.5.3-SNAPSHOT.jar 의 클래스를 다음과 같이 동적으로로드합니다.

Class.forName("edu.uoc.campusgateway.osid.authentication.AuthenticationManager") 
(210)

내가 모듈 폴더에이 개 모듈을 만들었습니다

<?xml version="1.0" encoding="UTF-8"?> 
<module xmlns="urn:jboss:module:1.1" name="edu.uoc.oki2"> 

    <resources> 

    <resource-root path="CampusGateway-2.5.3-SNAPSHOT.jar" /> 
    <resource-root path="CampusLauncherJava-1.1.3-SNAPSHOT-filter.jar"/> 
    <resource-root path="OkiBusJava-1.2.2-config-uoc.jar"/> 
    <resource-root path="OkiBusXmlSchemas-1.1.1-SNAPSHOT.jar"/> 
    <resource-root path="OkiOSID-2.0.jar"/> 
    <resource-root path="JavaUtils-1.1.2-SNAPSHOT.jar"/> 
    <resource-root path="LibTecsidel.jar"/> 

    </resources> 

    <dependencies> 

    </dependencies> 
    </module> 

그리고

<?xml version="1.0" encoding="UTF-8"?> 

<module xmlns="urn:jboss:module:1.1" name="edu.uoc.okicomps"> 

    <resources> 
    <resource-root path="CampusComponentsJava-1.4.4.jar"/> 
    <resource-root path="CampusComponentsJava-1.4.4-config-uoc.jar"/> 

    </resources> 

    <dependencies> 
     <module name="edu.uoc.oki2" export="true"/> 
    </dependencies> 
</module> 

을 나는 나중에 한 해당 모듈의 edu.uoc.okicomps 모듈 듀에 따라 아이디어를 표현하는 태그입니다. edu.uoc.okicomps 모듈 중 하나의 jar가 모듈 edu.uoc.oki2의 한 항아리에서 동적으로 클래스를로드하려고하기 때문에. uu.oki2 마지막으로, webapp에 모든 jar가 필요하기 때문에 명시 적으로 액세스를 선언 했으므로 웨브의 두 모듈에 메타-INF에있는 PP/MANIFEST.xml

Manifest-Version: 1.0 
Class-Path: 
Dependencies: edu.uoc.okicomps,edu.uoc.oki2 

는 제외 실패 작동하지 않습니다하지만 :

java.lang.NoClassDefFoundError: Could not initialize class edu.uoc.campusgateway.osid.authentication.AuthenticationManager 

어떤 도움이 apreciated 될 것이다!

대단히 감사합니다.

답변

0

문제점을 발견했습니다. 문제는 Class.forName이 자체적 인 특성으로 인해 정적 코드와 생성자를 실행한다는 것입니다.

이 경우 정적 코드는 추가하지 않은 다른 jar에 포함 된 속성 파일을 클래스 로더를 통해로드하려고 시도합니다. 그래서 내 문제에 대한 수정 프로그램은 다음과 같습니다

1)이을 Module.xml

2) 모듈에 물리적으로 파일 CampusComponentsJava-1.4.4 - 설정 - uoc.jar을 추가하려면 다음 줄을 추가 \ edu \ uoc \ oki2 \ main 폴더

관련 문제