用PHP访问JasperReport

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-28 19:54   54   0

参考文档

http://blog.cjcht.com/index.php/henry/2007/12/26/phpab_af_eoic_ujasper_report

http://www.rjohnson.id.au/wordpress/2007/10/27/bullet-proof-jasper-reports-and-php/

下载http://php-java-bridge.sourceforge.net/pjb/

把里面的.war文件,拷贝到Tomcat的webapps目录下,如果不用tomcat,可以用java来启动它

重启tomcat后,可以用

http://www.yourname.com:8090/JavaBridge/

看看是否正常运行。端口号可以查看tomcat的日志,catalina.out,看看它是用了哪个端口号,应该可以自己配置的,没研究,反正都是在localhost中调用的,后面的php代码需要用到此端口号。

JavaBridge运行后,会自动在下面添加以下目录

JavaBridge

下载iReport,安装到你的PC上,把目录

c:/Program Files/JasperSoft/iReport-nb-3.1.1/ireport/modules/ext/

中的所有内容,拷贝到服务器的webapps/JavaBridge/WEB-INF/lib/下,这些包需要能被JavaBridge找得到才行,当然也可以放在JRE/lib/ext下,由于我是加载到jira的tomcat上,如果放在jre目录下,会导致jira无法正常启动,是由于log包的原因。

到此步是否重启tomcat,可以视情况而定

然后下载这两个代码放在服务器的php代码目录下,

http://www.rjohnson.id.au/download/jasper/test.jrxml

http://www.rjohnson.id.au/download/jasper/index.php.txt

如果需要用mysql,替换代码中

/*
$emptyDataSource = new Java("net.sf.jasperreports.engine.JREmptyDataSource");
$jasperPrint = $fillManager->fillReport($report, $params, $emptyDataSource);
*/
$class = new JavaClass("java.lang.Class");
$class->forName("com.mysql.jdbc.Driver");
$driverManager = new JavaClass("java.sql.DriverManager");
$conn = $driverManager->getConnection("jdbc:mysql://localhost:3306/dbname?user=root&password=xxx");
$jasperPrint = $fillManager->fillReport($report, $params, $conn);

如果连不上mysql,可以看看是否要下载mysql-connector-java-5.0.7-bin.jar,放在jre/lib/ext下。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP