Jasper 보고서를 컴파일하거나 실행할 때 NoClassDefFoundError 오류가 발생합니다.Jasper가 NoClassDefFoundError를보고합니다.
2012-06-13 14:46:26,710 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/jahtest].[jahtest]] Servlet.service() for servlet jahtest threw exception
java.lang.NoClassDefFoundError: Could not initialize class net.sf.jasperreports.engine.xml.JRXmlDigesterFactory
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:207)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:172)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:156)
나는 war 파일에 싸서 배치 된 JBoss default/deploy 폴더에 java 클래스 집합을 가지고 있습니다. JBoss default/lib 폴더에 jasperreports-4.1.2.jar 파일이 있으므로 libpath에있는 다른 모든 jar 파일을 볼 수 있기 때문에 classpath 문제가 발생할 수 있습니다.
제 프론트 엔드 앱이 리플렉션을 사용하여 재스퍼 코드가 포함 된 클래스를 호출하는 HTTPServlet 클래스를 호출합니다. 이 라인이 호출 될 때까지 모든 것이 잘 작동합니다. -
JasperDesign jasperDesign = JRXmlLoader.load(strCompiledReportFile);
strCompiledReportFile이 정확하고 존재합니다. 이 모든 것은 Eclipse를 통해 실행할 때 작동합니다. HTTPServlet 클래스에서 호출 된 경우가 아닙니다.
저는 이것이 많은 문제를 겪었 기 때문에 벽옥을 버리고 싶습니다. 마지막 기회 살롱입니다.
당신이 제공 할 수있는 도움에 대한 환호.
내 JBoss 기본/lib 폴더에 필요한 모든 jar를 가지고있는 것 외에 다른 곳에서 참조해야 할 곳이 있습니까? 내 war 파일의 WEB-INF \ lib 폴더에 추가하려고 시도했지만, C : \ Program Files \ Java \ jdk1.6.0_13 \ jre \ lib 폴더에도 추가하려고 시도했지만 여전히 같은 오류. – user1167796
이것은 매우 실망 스럽습니다! 서블릿을 통해 Jasper 클래스에 액세스하려고 할 때만 오류가 발생합니다. 어떤 클래스의 Jasper 코드를 사용하는 메소드를 호출하면 클래스를 성공적으로 액세스 할 수 있습니다. – user1167796
맞아, 내 서블릿에 클래스 패스 문제가 있어야한다. 필자는 서블릿을 실행할 때보 다 Eclipse를 실행할 때 런타임 클래스 경로가 다른 것으로 판단했습니다. 내 war 파일의 web-inf/lib 폴더에 필요한 jar를 모두 추가했습니다. 여전히 작동하지 않습니다! 내 WAR 파일의 매니페스트 파일에 클래스 경로를 설정해야합니까? 그렇다면 어떻게해야합니까? – user1167796