如何将报告部署到Jasper Server

时间:2014-03-11 14:20:53

标签: java jdbc jasper-reports ireport jasperserver

我尝试将报告部署到我的jasper服务器。我遵循了本教程:http://randomallsorts.blogspot.de/2009/12/jasper-reports-how-to-deploy-report-to.html。但最终,当我试图在管理界面中查看我的报告时,我收到了一个很长的错误,我不明白。

  

服务器遇到错误。请原谅给您带来的不便。   错误消息

     

com.mysql.jdbc.Driver错误跟踪

     

com.jaspersoft.jasperserver.api.JSExceptionWrapper:   java.lang.ClassNotFoundException:com.mysql.jdbc.Driver at   org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1516)   在   org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361)   at java.lang.Class.forName0(Native Method)at   java.lang.Class.forName(Class.java:247)at   com.jaspersoft.jasperserver.api.common.service.impl.JdbcDriverServiceImpl.loadDriverFromExistingClassLoaders(JdbcDriverServiceImpl.java:535)   在   com.jaspersoft.jasperserver.api.common.service.impl.JdbcDriverServiceImpl.register(JdbcDriverServiceImpl.java:130)   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at   sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)   在   sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)   在java.lang.reflect.Method.invoke(Method.java:597)at   org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318)   在   org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:196)   在$ Proxy35.register(未知来源)at   com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.DbcpDataSourceFactory.registerDriver(DbcpDataSourceFactory.java:58)   在   com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.DbcpDataSourceFactory.createPooledDataSource(DbcpDataSourceFactory.java:50)   在   com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.JdbcReportDataSourceServiceFactory.getPoolDataSource(JdbcReportDataSourceServiceFactory.java:145)   在   com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.JdbcReportDataSourceServiceFactory.createService(JdbcReportDataSourceServiceFactory.java:128)   在   com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.createDataSourceService(EngineServiceImpl.java:1763)   在   com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.fillReport(EngineServiceImpl.java:1651)   在   com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl $ ReportFill.runReport(EngineServiceImpl.java:1022)   在   com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl $ ReportRunnable.run(EngineServiceImpl.java:897)   在   java.util.concurrent.ThreadPoolExecutor中的$ Worker.runTask(ThreadPoolExecutor.java:886)   在   java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:908)   在java.lang.Thread.run(Thread.java:619)错误消息

     

java.lang.ClassNotFoundException:com.mysql.jdbc.Driver错误跟踪

     

java.lang.ClassNotFoundException:com.mysql.jdbc.Driver at at   org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1516)   在   org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361)   at java.lang.Class.forName0(Native Method)at   java.lang.Class.forName(Class.java:247)at   com.jaspersoft.jasperserver.api.common.service.impl.JdbcDriverServiceImpl.loadDriverFromExistingClassLoaders(JdbcDriverServiceImpl.java:535)   在   com.jaspersoft.jasperserver.api.common.service.impl.JdbcDriverServiceImpl.register(JdbcDriverServiceImpl.java:130)   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at   sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)   在   sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)   在java.lang.reflect.Method.invoke(Method.java:597)at   org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318)   在   org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:196)   在$ Proxy35.register(未知来源)at   com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.DbcpDataSourceFactory.registerDriver(DbcpDataSourceFactory.java:58)   在   com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.DbcpDataSourceFactory.createPooledDataSource(DbcpDataSourceFactory.java:50)   在   com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.JdbcReportDataSourceServiceFactory.getPoolDataSource(JdbcReportDataSourceServiceFactory.java:145)   在   com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.JdbcReportDataSourceServiceFactory.createService(JdbcReportDataSourceServiceFactory.java:128)   在   com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.createDataSourceService(EngineServiceImpl.java:1763)   在   com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.fillReport(EngineServiceImpl.java:1651)   在   com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl $ ReportFill.runReport(EngineServiceImpl.java:1022)   在   com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl $ ReportRunnable.run(EngineServiceImpl.java:897)   在   java.util.concurrent.ThreadPoolExecutor中的$ Worker.runTask(ThreadPoolExecutor.java:886)   在   java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:908)   在java.lang.Thread.run(Thread.java:619)

有没有人知道那里可能有什么问题?对不起,我真是个业余爱好者。

2 个答案:

答案 0 :(得分:2)

尝试使用本指南.. 好像它找不到要连接的mysql驱动程序。

http://jasperserver.sourceforge.net/docs/3-5-0/JasperServer-User-Guide.pdf

答案 1 :(得分:2)

首先,您应该在Jasper Server上安装驱动程序。

  1. 使用角色为ROLE_ADMINISTRATOR
  2. 的用户转到Web界面
  3. 在树状视图中,您可以创建一个用于保存数据源的文件夹
  4. 在该文件夹中,右键单击并添加数据源
  5. 为您指定一个有意义的名称并上传com.mysql.jdbc.Driver(如果尚未存在)。
    1. 注意:如果您进行了手动WAR安装,则可能已经安装了驱动程序。
    2. 在此处下载驱动程序http://dev.mysql.com/downloads/connector/j/
  6. 检查jdbc网址。应该像jdbc:mysql://your_host/your_database
    1. 小黑客是检查MYSQL服务器中的最大允许数据包设置,并在jdbc网址中相应地设置它。在MYSQL驱动程序上,使用以下命令检查它:
    2. SHOW VARIABLES LIKE 'max_allowed_packet';
    3. 然后将网址设置为:jdbc:mysql://your_host/your_database?maxAllowedPacket=WHATEVER_SIZE_YOU_GOT
  7. 检查用户名,密码和时区并测试连接。
  8. 在Web界面上编辑报告,并将数据源设置为此数据源。
  9. 当您通过Web界面或iReport Designer上传新报告时,请分配此数据源。

    祝你好运,希望它能解决你的问题:)