2011-01-13 3 views
2

JSF 2.0 응용 프로그램에서 JasperReports를 사용하려고합니다. NetBeans 6.9.1, mojarra 2.0.3 및 PrimeFaces 2.2.RC2도 사용하고 있습니다. iReport 3.7.6의 시험 보고서를 작성했습니다. 정적 레이블 하나를 텍스트 필드로 변경했습니다. 리소스 번들/.properties 파일에서 값을 얻었습니다. 이 보고서의 iReport에서 예상대로 실행,하지만 난 다음 오류 받고 있어요 내 프로그램에서 실행하려고하면JasperReports 리소스 번들 (.properties 파일)을 찾을 수없는 프로그램

SEVERE: javax.faces.FacesException: #{userReportBean.runReport}: java.util.MissingResourceException: Can't find bundle for base name Bundle, locale en_US 

보고서는 번들에 관계없이 잘 실행됩니다. 정적 레이블 매개 변수를 만들고 보고서가 실행될 때 전달하는 유일한 해결책은 무엇입니까? 또는 보고서가 iReport에서 실행되지 않을 때 .properties 파일을 찾을 위치를 알려주는 방법이 있습니까?

답변

2

이것은 클래스 경로에 Bundle_en_US.properties, Bundle_en.properties 또는 Bundle.properties 파일을 찾을 수 없음을 의미합니다. JasperReports가 액세스 할 수있는 classpath에 배치해야합니다.

패키지 안에 실제로 배치 한 경우에는 기본 이름에도 지정해야합니다. 예 : com.example 패키지에 실제로 들어간 경우는 com.example.Bundle입니다.

+0

알 수 있습니다. 필자는 프로젝트 폴더 중 하나로 복사 할 수 있다고 생각하고, iReport의 클래스 경로를 참조하고, 모든 것이 올바르게 작동한다고 생각할 정도로 순진했습니다. 번들을 내 소스 패키지 중 하나에 넣고 iReport에 클래스 패스를 넣어 보도록하겠습니다. 그렇지 않으면 유용하지 않습니까? – Sean

0

.jrxml 파일이있는 동일한 폴더에 번들을 넣어야합니다. 보고서의 이름이 "myreport.jrxml"인 경우 "myreport_Bundle"이라는 폴더를 만들어야합니다. (스페인 스페인어)

  • myreport.properties (기본 파일)
  • myreport_en_US.properties (미국 영어)
  • myreport_es_ES.properites
  • 등 : 해당 폴더 내부

    은 등록 정보 파일을 저장합니다

또한 보고서에 "리소스 번들"속성을 설정해야합니다 (iReport, fo 인스턴스). 속성의 값은 파일의 이름과 동일합니다.이 경우에는 "myreport"("_Bundle"을 추가 할 필요가 없습니다)입니다.

+0

감사합니다. iReport에서 올바르게 설정했습니다. 모든 것이 iReport에서 잘 돌아갔다. 문제를 일으킨 주요 프로젝트에서 사용했다. 리소스 번들은 기본 패키지에 들어 있지만 모든 것이 매력처럼 작동합니다. – Sean

관련 문제