2012-06-14 4 views
3

내가 성공적으로이 같은 두 사람을 통해 this sample package에서 가져온/개방 "testWebReport.rptdesign"보고서를 볼 수 있습니다 BIRT 뷰어 및 PHP/자바 브릿지와 I를 설정 실행할 수 없습니다 :BIRT - .rptdesign 오류를 가지고

BIRT 뷰어 :

http://192.168.0.90:8080/birt/run?__report=report/testWebReport.rptdesign 

PHP/자바 브릿지 : Source/tutorial

<?php 

define ("JAVA_HOSTS", "192.168.0.90:8080"); 
define ("JAVA_SERVLET", "/JavaBridge/JavaBridge.phpjavabridge"); 
$pth = "http://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]; 
$path_parts = pathinfo($pth); 
$imageURLPrefix = $path_parts['dirname'] ."/sessionChartImages/"; 
require_once("java/Java.inc"); 

session_start(); 

$here = getcwd(); 

$ctx = java_context()->getServletContext(); 
$birtReportEngine = java("org.eclipse.birt.php.birtengine.BirtEngine")->getBirtEngine($ctx); 
java_context()->onShutdown(java("org.eclipse.birt.php.birtengine.BirtEngine")->getShutdownHook()); 

try{ 

$report = $birtReportEngine->openReportDesign("${here}/payment.rptdesign"); 
$task = $birtReportEngine->createRunAndRenderTask($report); 

$taskOptions = new java("org.eclipse.birt.report.engine.api.HTMLRenderOption"); 
$outputStream = new java("java.io.ByteArrayOutputStream"); 
$taskOptions->setOutputStream($outputStream); 
$taskOptions->setOutputFormat("html"); 
$ih = new java("org.eclipse.birt.report.engine.api.HTMLServerImageHandler"); 
$taskOptions->setImageHandler($ih); 

$taskOptions->setBaseImageURL($imageURLPrefix . session_id()); 
$taskOptions->setImageDirectory($here . "/sessionChartImages/" . session_id()); 

$task->setRenderOption($taskOptions); 
$task->run(); 
$task->close(); 

} catch (JavaException $e) { 
echo $e; //"Error Calling BIRT"; 

} 
echo $outputStream; 

?> 

Eclipse 용 BIRT에서 새 보고서를 만든 다음 두 가지 방법으로 실행하려고 시도하지만 첫 번째 방법 만 작동합니다. [) 문자열 : - "의 java.lang.Exception을 :

[[O : 예외 제 2 일 동안 나는이 메시지를 가지고 호출에 실패했습니다 : [[O> openReportDesign ((O ReportEngine] o : String]) 원인 : org.eclipse.birt.report.engine.api.EngineException : 디자인 파일 파일 :/C :/Program % 20Files % 20 (x86) /EasyPHP-5.3.9/www /BirtBridgeTest/payment.rptdesign 은 오류가있어서 실행할 수 없습니다. VM : [email protected] : //java.oracle.com/ " at : # -14 org.eclipse.birt.report.engine. api.impl.ReportEngineHelper.getReportDesignHandle (ReportEngineHelper.java:260) # -13 org.eclipse.birt.report.engine.api. (ReportEngineHelper.java:196) # -12 org.eclipse.birt.report report.engine.api.impl.ReportEngineHelper.openReportDesign (ReportEngineHelper.java:130) # -10 org.eclipse.birt.report.engine.api.impl.ReportEngine.openReportDesign (ReportEngine.java:304) # -9 sun.reflect.NativeMethodAccessorImpl.invoke0 (기본 방법) # -8 sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:57) # -7 sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) # -6 java.lib.Invoke (JavaBridge.java:1044) # st (Request.java:417) # -3 php.java.bridge.Request.handleRequests (Request.java:500) # -2 php.java.bridge.http.ContextRunner.run (ContextRunner.java:145) # 0 php.java.bridge.ThreadPool $ Delegate.run (ThreadPool.java:60) # 0 C : \ Program Files (EasyPHP-5.3.9 \ www \ BirtBridgeTest \ java \ Java.inc) (232) : java_hrowExceptionProxyFactory-> getProxy (6, '@V', 'T', true) # 1 C : \ Program Files (x86) \ EasyPHP-5.3.9 \ www \ BirtBridgeTest \ java \ Java. java_Arg-> getResult (true) # 2 C : \ Program Files (x86) \ EasyPHP-5.3.9 \ www \ BirtBridgeTest \ java \ Java.inc (366) : java_Client-> getWrappedResult (255) : java_Arg-> getResult true) # 3 C : \ Program Files (x86) \ EasyPHP-5.3.9 \ ww B EasyBridgeTest \ java \ Java.inc (1752) \ EasyBootTest \ java \ Java.inc (560) : java_Client-> getResult() # 4 C : \ Program Files (x86) \ EasyPHP-5.3.9 \ : java_Client-> invokeMethod (4, 'openReportDesig ...', Array) # 5 C : \ Program Files (x86) \ EasyPHP-5.3.9 \ www \ BirtBridgeTest \ java \ Java.inc (1851) : java_JavaProxy -> __ call ('openReportDesig ...', Array) # 6 C : \ Program 파일 (x86) \ EasyPHP-5.3.9 \ www \ BirtBridgeTest \ java \ Java.inc (1999) : java_AbstractJava-> _ 전화 ('openReportDesig ...', Array) # 7 C : \ Program 파일 (x86) \ EasyPHP-5.3.9 \ www \ BirtBridgeTest \ HTMLOutput.php (20) : Java-> _call ('openReportDesig ... ', Array) # 8 C : \ 프로그램 파일 (86) \ EasyPHP-5.3.9 \ www가 \ BirtBridgeTest \ HTMLOutput.php (20) : java_InternalJava-> openReportDesign ('C : \ 프로그램 파일 ...') # 9 {주} ]

나는 이미 내가 데이터베이스에 대한 연결을 가지고 있으며, 일부 차트를 표시하거나 그냥 만들 보고서를 작성하는 경우는 문제가되지 않기 때문에 문제의 원인이 무엇 보고서의 내용이 아니라고 발견

공백 - 결과는 같습니다.

누구에게도 해결책이 있습니까? 며칠 동안 내 작업이 진행되는 것을 막을 수 있습니다.

답변

3

나는 마지막으로 이클립스에서 "XML 소스"탭을 다음 줄을 편집하여이 문제를 해결 :

<report xmlns="http://www.eclipse.org/birt/2005/design" version="3.2.23" id="1"> 

내가해야 할 일을했을 모든 3.2.23에서 3.2.2 버전을 변경하는 것이 었습니다. 메모장에서 .rptdesign 파일을 직접 편집하여이를 수행 할 수 있습니다.

+0

아무도 이에 대한 설명이 있습니까? PHP/Java Bridge에서 문제가 있습니까? – petter386

+2

브릿지를 생각하지 마십시오. 순수 자바 애플리케이션에서 동일한 문제가 있습니다. – Kingsolmn

+0

그 트릭을 했어! 대단히 감사합니다! – Kingsolmn