symfony 2 php를 사용하여 웹 응용 프로그램을 작성하고 있습니다. jasperreports를 사용하여 일부 보고서를 생성하려고합니다. Java Bridge를 사용했고 Java Bridge 전쟁을 내 Tomcat 7에 배포했지만 보고서를 생성하려고 할 때 오류가 발생합니다. ,jasperreports 사용 중 발생하는 문제 Java Bridge 및 심포니
Symfony\Component\Debug\Exception\ContextErrorException: Notice: fwrite():
at n/a
in http://localhost:8080/JavaBridge/java/Java.inc line 482
at Symfony\Component\Debug\ErrorHandler->handleError('8', 'fwrite(): ', 'http://localhost:8080/JavaBridge/java/Java.inc', '482', array('data' => ''))
in line
at fwrite(resource, '')
in http://localhost:8080/JavaBridge/java/Java.inc line 482
at java_SocketChannel->fwrite('')
in http://localhost:8080/JavaBridge/java/Java.inc line 528
at java_SocketHandler->write('')
in http://localhost:8080/JavaBridge/java/Java.inc line 671
at java_HttpHandler->redirect()
in http://localhost:8080/JavaBridge/java/Java.inc line 743
at java_Protocol->redirect()
in http://localhost:8080/JavaBridge/java/Java.inc line 755
at java_Protocol->finish()
in http://localhost:8080/JavaBridge/java/Java.inc line 794
at java_Protocol->invokeEnd()
in http://localhost:8080/JavaBridge/java/Java.inc line 359
at java_Client->invokeMethod('0', 'updateJarLibraryPath', array('file:D:/Programmes/jasperReport/lib/.;file:D:/Programmes/jasperReport/lib/..;file:D:/Programmes/jasperReport/lib/jasperreports-5.6.0.jar;file:D:/Programmes/jasperReport/lib/jasperreports-applet-5.6.0.jar;file:D:/Programmes/jasperReport/lib/jasperreports-fonts-5.6.0.jar;file:D:/Programmes/jasperReport/lib/jasperreports-javaflow-5.6.0.jar;', 'c:/wamp/bin/php/php5.5.12/ext/', 'C:\wamp\www\syslife_v1\web', '.;C:\php\pear'))
in http://localhost:8080/JavaBridge/java/Java.inc line 986
at java_require('file:D:/Programmes/jasperReport/lib/.;file:D:/Programmes/jasperReport/lib/..;file:D:/Programmes/jasperReport/lib/jasperreports-5.6.0.jar;file:D:/Programmes/jasperReport/lib/jasperreports-applet-5.6.0.jar;file:D:/Programmes/jasperReport/lib/jasperreports-fonts-5.6.0.jar;file:D:/Programmes/jasperReport/lib/jasperreports-javaflow-5.6.0.jar;')
in C:\wamp\www\syslife_v1\src\MamdaIT\ComptabiliteBundle\Controller\BordereauController.php line 372
at MamdaIT\ComptabiliteBundle\Controller\BordereauController->editionDetailBordereau(object(Request), '66')
in line
at call_user_func_array(array(object(BordereauController), 'editionDetailBordereau'), array(object(Request), '66'))
in C:\wamp\www\syslife_v1\vendor\symfony\symfony\src\Symfony\Component\HttpKernel\HttpKernel.php line 144
at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), '1')
in C:\wamp\www\syslife_v1\vendor\symfony\symfony\src\Symfony\Component\HttpKernel\HttpKernel.php line 64
at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), '1', true)
in C:\wamp\www\syslife_v1\vendor\symfony\symfony\src\Symfony\Component\HttpKernel\DependencyInjection\ContainerAwareHttpKernel.php line 69
at Symfony\Component\HttpKernel\DependencyInjection\ContainerAwareHttpKernel->handle(object(Request), '1', true)
in C:\wamp\www\syslife_v1\vendor\symfony\symfony\src\Symfony\Component\HttpKernel\Kernel.php line 185
at Symfony\Component\HttpKernel\Kernel->handle(object(Request))
in C:\wamp\www\syslife_v1\web\app_dev.php line 30
내가 사방 보았다 그러나 나는 해결책을 찾을 수 없습니다 내가 뭔가를 놓친 거지 : 그래서 여기
여기 내 컨트롤러
require_once("http://localhost:8080/JavaBridge/java/Java.inc");
$reportsPath ="D:/jaspertest/";
$reportFileName = "report";
$jasperReportsLib = "D:/Programmes/jasperReport/lib";
$java_library_path = '';
$handle = @opendir($jasperReportsLib);
while(($new_item = readdir($handle))!==false) {
$java_library_path .= 'file:'.$jasperReportsLib.'/'.$new_item .';';
}
java_require($java_library_path);
$sJcm = new JavaClass("net.sf.jasperreports.engine.JasperCompileManager");
$report = $sJcm->compileReport($reportsPath .$reportFileName.".jrxml");
$map = new Java("java.util.HashMap");
$emptyDataSource = new Java("net.sf.jasperreports.engine.JREmptyDataSource");
$sJfm = new JavaClass("net.sf.jasperreports.engine.JasperFillManager");
$print = $sJfm->fillReport($report,$map,$emptyDataSource);
$sJem = new JavaClass("net.sf.jasperreports.engine.JasperExportManager");
$sJem->exportReportToPdfFile($print, $reportsPath .$reportFileName.".pdf");
set_time_limit(0);
@readfile($reportsPath .$reportFileName.".pdf");// or die("problem occurs.");
$response = new Response($reportsPath .$reportFileName.".pdf");
$response->headers->set('Content-type', 'application/pdf');
$response->headers->set('Content-Disposition', 'attachement; filename=Report.pdf');
$response->headers->set('Cache-Control', 'must-revalidate');
return $response;
을 내 코드와 예외 내가 얻을 수있다 ? 여기
감사합니다. 그것은 매우 도움이되었다. – Chaaaaz