2016-07-28 6 views
0

왜이 오류가 발생합니까? 내 코드를 Java 애플리케이션 (IBM RSA \ Eclipse)으로 실행하고 격리 된 배포 환경에서 실행하면 내 개발 도구에서 사용할 수 있습니다. 코드에 대해 junits를 실행할 수 있으며 성공하여 특정 응용 프로그램 컨텍스트 파일을 구문 분석하는 것이 문제가되지 않습니다 (웹 서비스 응용 프로그램 컨텍스트). 동일한 jre 및 maven 종속성은 junit 및 실행중인 Java 응용 프로그램의 클래스 경로에 있습니다. 내가 CXF는 기본적으로 자바 로거를 사용하지만이 명령을 추가하는 것은 도움이되지 않습니다 알고 클래스 java.util.logging.LogManager를 초기화 할 수 없습니다.

System.setProperty("org.apache.cxf.Logger", "org.apache.cxf.common.logging.Log4jLogger"); 

나는 애플리케이션 컨텍스트 파일을 구문 분석 할 때 문제가 발생되는 것을 볼 수있는 코드를 디버깅하는 경우

.

에 의해 발생 : org.springframework.beans.FatalBeanException : 네임 스페이스에 대한 NamespaceHandler 클래스 [org.apache.cxf.jaxws.spring.NamespaceHandler]가 유효하지 않습니다. [http://cxf.apache.org/jaxws] : 핸들러 클래스 파일 또는 종속 클래스에 문제가 있습니다. 중첩 예외는 java.lang.NoClassDefFoundError입니다 : java.util.logging.LogManager 클래스를 초기화 할 수 없습니다.

+0

을 초기화 할 수 없습니다. junit에 사용 된 모든 jar 파일을 배포했는지 확인하십시오. – pedrofb

+0

두 경우 모두 동일한 jar에 Maven을 사용하고 있습니다. – jimmy

답변

0

해결 방법은이 시스템 특성을 추가하고 Java 응용 프로그램으로 실행할 때 기본 파일을 제공하는 것입니다.

System.setProperty ("java.util.logging.config.file", "/log/logging.properties");

http://www.javapractices.com/topic/TopicAction.do?Id=143

는 지금은 너무 잘하면 내가 비슷한 솔루션을 찾을 수있는 또 다른 문제가 있지만, 본질적으로 유사한 있습니다. java.lang.NoClassDefFoundError가 :에 의한

당신이 배포 클래스 경로에 봄 항아리 누락 것으로 보인다 클래스로서 java.net.ProxySelector

관련 문제