2011-02-11 3 views
1

데이터베이스 메타 데이터를 읽는 데 org.apache.ddlutils 패키지를 사용하려고합니다. 다음과 같은 오류를org.apache.ddlutils.DdlUtilsException 사용시 문제점

public static void readMetaData(DataSource dataSource) throws DdlUtilsException{ 

    final Platform platform = PlatformFactory.createNewPlatformInstance(dataSource); 
} 

그러나 이 DdlUtilsException 발생 문 제공합니다 : 나는 다음과 같은 방법을 쓴

형 DdlUtilsException의 어떠한 예외가 발생 할 수 없습니다;

java.lang.Object 
    extended by java.lang.Throwable 
     extended by java.lang.Exception 
      extended by java.lang.RuntimeException 
       extended by org.apache.commons.lang.exception.NestableRuntimeException 
        extended by org.apache.ddlutils.DdlUtilsException 

하십시오 조언 : 예외 유형은 http://db.apache.org/ddlutils/api/org/apache/ddlutils/DdlUtilsException.html의 API가 명확하게 다음과 같은 상태 때문에 단순히이 오류 뒤에 이유를 이해하지의 Throwable

의 서브 클래스해야합니다.

+0

나중에 참조 할 수 있도록. Apache DdlUtils 1.0은 Apache Commons Lang 2.6에 종속됩니다. 최신 버전 (3.0 이상)은 호환되지 않습니다. – Eonil

답변

3

제 생각에 컴파일러가 전체 패키지 이름을 언급하지 않는다면 어쩌면 최상위 패키지에 DdlUtilsException이라는 또 다른 클래스가있을 것입니다. Eclipse 또는 비슷한 것을 사용하는 경우 클래스 선언으로 이동해보십시오.

편집 : 좋아, 귀하의 의견에 의해 판단, 당신은 다양한 의존성을 포함하지 않습니다. DdlUtils-1.0-bin.zip을 다운로드했는지 확인하십시오. 종속성은 모두 lib 디렉토리에 있습니다. 모두이 필요한지 여부는 나에게 분명하지 않지만, 모두 함께 시작한 다음 필요없는 것을 제거 할 수도 있습니다.

+0

답장을 보내 주신 Jon님께 감사드립니다 !! 필자는 빌드 경로에 DdlUtils-1.0.jar 항아리만을 사용했습니다. 다른 jar 파일은 없습니다. 하지만 이클립스의 오류보기에서 보면 "org.apache.commons.lang.exception.NestableRuntimeException 유형을 확인할 수 없으며 필요한 .class 파일에서 간접적으로 참조됩니다."이 오류의 원인은 무엇일까요? ?? –

+0

@n_g : 컴파일러가 무엇이 잘못되었는지를 말하는 것처럼 들립니다. apache.commons를 포함하여 몇 가지 종속성을 추가해야합니다. ddlutils 홈 페이지에는 필요한 의존성을 알려주고 있습니다. –

+0

저는 DdlUtils 1.0 릴리스를 살펴 봤는데 zip 파일에는 다양한 종속성이 있습니다. –

1

다른 클래스 'org.apache.commons.lang.exception.NestableRuntimeException'은 commons-lang에 있습니다. 그 항아리를 다운로드하고 추가하면 제대로 작동합니다. docs에서 DDL Utils를 확인하고 그 밖의 다른 요소가 무엇인지 확인하십시오.

+0

도움에 감사드립니다 !!! commons-lang을 추가하면이 문제가 해결되었습니다. –