2014-04-15 5 views
2

내 봄 프로젝트 내에서 Birt ReportEngine을 사용하려고합니다. Eclipse 내에서 작동하는 report.rptdesign을 성공적으로 생성했습니다. 이제이 응용 프로그램 내에서 'report.rptdesign'을 사용하여 출력 (PDF/HTML, 중요하지 않음)을 생성하려고합니다. ODA 프로필 저장소 경로 Birt 연결 프로필

<dependency> 
    <groupId>org.eclipse.birt.runtime</groupId> 
    <artifactId>org.eclipse.birt.runtime</artifactId> 
    <version>4.2.2</version> 
</dependency> 

을 내 pom.xml에 추가했습니다. 더구나 두 경로를 모두 추가 (수동으로 생성)했습니다.

-Dorg.eclipse.datatools_workspacepath=C:\apache-tomcat-7.0.30\temp\workspace_dtp 
-Dorg.eclipse.datatools.connectivity_workspacepath=C:\apache-tomcat-7.0.30\temp\workspace_dtp\org.eclipse.datatools.connectivity 

계속 오류가 여러 번 발생합니다. 내가 사용하는 코드 :

org.eclipse.datatools.connectivity.internal.ConnectivityPlugin log 
SEVERE: Error loading connection profile data. 
org.eclipse.datatools.connectivity.internal.ConnectivityPlugin log 
SEVERE: Error saving connection profile data. 

내 report.rptdesign 올바르게 report.rptdesign

<data-sources> 
    <oda-data-source extensionID="org.eclipse.birt.report.data.oda.jdbc.dbprofile" name="DB MySql" id="18"> 
    .... 
    <property name="OdaConnProfileStorePath">C:\workspace-sts\myproject\test\db</property> 
    </oda-data-source> 
</data-sources> 

업데이트에서 참조 내 데이터베이스에 연결하기 위해 'DB'파일을 사용합니다 :

DesignConfig config = new DesignConfig(); 
Platform.startup(config); 
IDesignEngineFactory factory = (IDesignEngineFactory) Platform.createFactoryObject(IDesignEngineFactory.EXTENSION_DESIGN_ENGINE_FACTORY); 
IDesignEngine designEngine = factory.createDesignEngine(config); 

SessionHandle session = designEngine.newSessionHandle(ULocale.ENGLISH); 
ReportDesignHandle designHandle = session.openDesign("myReport.rtpdesign"); 
ElementFactory designFactory = designHandle.getElementFactory(); 
designHandle.close(); 


EngineConfig engineConfig = new EngineConfig(); 
Platform.startup(engineConfig); 
IReportEngineFactory factory = (IReportEngineFactory) Platform.createFactoryObject(IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY); 
IReportEngine reportEngine = factory.createReportEngine(engineConfig); 

IReportRunnable design = reportEngine.openReportDesign(designHandle); 
IRunAndRenderTask task = reportEngine.createRunAndRenderTask(design); 

'db'파일을 다른 곳에 두어야합니까? 나는 연결 프로필 저장소가 상대 경로로 설치 된 경우, BIRT 엔진 설정에 resourcePath를 제공해야

감사합니다, 마누엘

+0

질문에 '봄'태그를 사용하지 않는 이유가 있습니까? Eclipse의 내부에서 디자인이 작동한다고 가정하면 스프링 프레임 워크와 관련이있는 것 같습니다. –

+0

스프링 태그를 추가했습니다. (그러나 이것이 스프링과 관련이 없다고 생각합니다.) – Manuel

+0

birt 4.2에서 연결 프로필 저장소의 상대 경로를 설정할 수 있습니다.이 옵션을 고려 했습니까? 자신의 자바 코드에서 birt 엔진을 시작합니까? – Dominique

답변

0

까지 시작하기 전에 클래스 경로 등 내에서 여러 위치를 시도했다 플랫폼. 예 :

engineConfig.setResourcePath("/myResourcePath"); 

연결 저장소는이 resourcePath에 상대적으로 검색됩니다.