简体   繁体   English

如何将报告部署到Jasper Server

[英]How to deploy a report to Jasper Server

I tried to deploy a report to my jasper server. 我试图将报告部署到我的Jasper服务器。 I followed this tutorial: http://randomallsorts.blogspot.de/2009/12/jasper-reports-how-to-deploy-report-to.html . 我遵循了本教程: http : //randomallsorts.blogspot.de/2009/12/jasper-reports-how-to-deploy-report-to.html But in the end of the day, when I tried to have a look at my report in the admin interface I just received a pretty long error which I don't understand. 但是最终,当我试图在管理界面中查看报告时,我收到了一个很长的错误,我不理解。

The server has encountered an error. 服务器遇到错误。 Please excuse the inconvenience. 不便之处,敬请原谅。 Error Message 错误信息

com.mysql.jdbc.Driver Error Trace 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) at 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) at 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) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.j com.jaspersoft.jasperserver.api.JSExceptionWrapper:java.lang.ClassNotFoundException:org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1516)的com.mysql.jdbc.Driver在org.apache.catalina.loader上.webappClassLoader.loadClass(WebappClassLoader.java:1361)(位于java.lang.Class.forName0(本机方法)(位于java.lang.Class.forName(Class.java:247))(位于com.jaspersoft.jasperserver.api.common.service) .com.jaspersoft.jasperserver.api.common.service.impl.JdbcDriverServiceImpl.register(JdbcDriverServiceImpl.java:130)上的.impl.JdbcDriverServiceImpl.loadDriverFromExistingClassLoaders(JdbcDriverServiceImpl.java:535)在sun.reflect.NativeInvalidMethod0I处在组织上的java.lang.reflect.Method.invoke(Method.java:597)在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.j ava:318) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:196) at $Proxy35.register(Unknown Source) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.DbcpDataSourceFactory.registerDriver(DbcpDataSourceFactory.java:58) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.DbcpDataSourceFactory.createPooledDataSource(DbcpDataSourceFactory.java:50) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.JdbcReportDataSourceServiceFactory.getPoolDataSource(JdbcReportDataSourceServiceFactory.java:145) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.JdbcReportDataSourceServiceFactory.createService(JdbcReportDataSourceServiceFactory.java:128) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.createDataSourceService(EngineServiceImpl.java:1763) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.fillReport(EngineServic ava:318)位于org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:196)位于com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.DbcpDataSourceFactory的$ Proxy35.register(Unknown Source) com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.DbcpDataSourceFactory.createPooledDataSource(DbcpDataSourceFactory.java:50)上的.registerDriver(DbcpDataSourceFactory.java:58)在com.jaspersoft.jasperserver.api.engine.jasperreports上。 com.jaspersoft.com上的.impl.JdbcReportDataSourceServiceFactory.getPoolDataSource(JdbcReportDataSourceServiceFactory.java:145)位于com.jaspersoftapi上的com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.JdbcReportDataSourceServiceFactory.createService(JdbcReportDataSourceServiceFactory.java:128) com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.fillReport(EngineServic)上的.jasperreports.service.impl.EngineServiceImpl.createDataSourceService(EngineServiceImpl.java:1763) eImpl.java:1651) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$ReportFill.runReport(EngineServiceImpl.java:1022) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$ReportRunnable.run(EngineServiceImpl.java:897) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) Error Message com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl $ ReportFill.runReport(EngineServiceImpl.java:1022)处的com.jaspersoft.jasperserver.api.engine.jasperreports.service的eImpl.java:1651)。在java.util.concurrent.ThreadPoolExecutor $ Worker.runTask(ThreadPoolExecutor.java:886)处的impl.EngineServiceImpl $ ReportRunnable.run(EngineServiceImpl.java:897)在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java: 908)at java.lang.Thread.run(Thread.java:619)错误消息

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

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1516) at 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) at 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) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318) at org.springframework.aop.framework.JdkDyn java.lang.ClassNotFoundException:org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361处的com.mysql.jdbc.Driver位于org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1516) )的java.lang.Class.forName0(本机方法)的com.jaspersoft.jasperserver.api.common.service.impl.JdbcDriverServiceImpl.loadDriverFromExistingClassLoaders(JdbcDriverServiceImpl.java)的java.lang.Class.forName(Class.java:247)处:535),位于com.jaspersoft.jasperserver.api.common.service.impl.JdbcDriverServiceImpl.register(JdbcDriverServiceImpl.java:130),位于sun.reflect.NativeMethodAccessorImpl.invoke0(本地方法),位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessor .java:39)位于org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(.java.lang.reflect.Method.invoke(Method.java:597)处的sun.reflect.DelegatingMethodAccessorImpl.java:25) AopUtils.java:318),位于org.springframework.aop.framework.JdkDyn amicAopProxy.invoke(JdkDynamicAopProxy.java:196) at $Proxy35.register(Unknown Source) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.DbcpDataSourceFactory.registerDriver(DbcpDataSourceFactory.java:58) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.DbcpDataSourceFactory.createPooledDataSource(DbcpDataSourceFactory.java:50) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.JdbcReportDataSourceServiceFactory.getPoolDataSource(JdbcReportDataSourceServiceFactory.java:145) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.JdbcReportDataSourceServiceFactory.createService(JdbcReportDataSourceServiceFactory.java:128) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.createDataSourceService(EngineServiceImpl.java:1763) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.fillReport(EngineServiceImpl.java:1651) at com.jaspersoft.jasperserver.api. com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.DbcpDataSourceSourceFactory.registerDriver(DbcpDataSourceFactory.java:58)上的$ Proxy35.register(Unknown Source)上的amicAopProxy.invoke(JdkDynamicAopProxy.java:196) .jasperserver.api.engine.jasperreports.service.impl.DbcpDataSourceFactory.createPooledDataSource(DbcpDataSourceFactory.java:50)位于com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.JdbcReportDataSourceServiceFactory.getPoolDataSource(JdbcReportData。) com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.createDataSourceService(Service.i.com.jasperserver.api.engine.jasperserver.api.engine.jasperreports.service.impl.JdbcReportDataSourceServiceFactory.createService(JdbcReportDataSourceServiceFactory.java:128)处com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.fillReport(EngineServiceImpl.java:1651)处com.jaspersoft.jasperserver.api处的Java:1763)。 engine.jasperreports.service.impl.EngineServiceImpl$ReportFill.runReport(EngineServiceImpl.java:1022) at com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl$ReportRunnable.run(EngineServiceImpl.java:897) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl $ ReportRunnable.run(EngineServiceImpl.java:897)处的engine.jasperreports.service.impl.EngineServiceImpl $ ReportFill.runReport(EngineServiceImpl.java:1022) java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:908)处的java.util.concurrent.ThreadPoolExecutor $ Worker.runTask(ThreadPoolExecutor.java:886)在java.lang.Thread.run(Thread.java: 619)

Does anybody have a clue what could be wrong there ? 有人知道那里可能有什么问题吗? I am sorry but I am really a ireport amateur. 对不起,我确实是爱尔兰业余爱好者。

try using this guide.. Seems like it cannot find the mysql driver to connect. 尝试使用本指南。似乎无法找到要连接的mysql驱动程序。

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

First you should install the driver on your Jasper Server. 首先,您应该在Jasper Server上安装驱动程序。

  1. Go to the web interface with a user in the role ROLE_ADMINISTRATOR 与具有ROLE_ADMINISTRATOR角色的用户一起进入Web界面
  2. On the tree view, you can create a folder to hold your datasource 在树形视图上,您​​可以创建一个文件夹来保存数据源
  3. In that folder, right click and add a data source 在该文件夹中,右键单击并添加数据源
  4. Give it a meaningful name for you and upload the com.mysql.jdbc.Driver (if not already present). 为您指定一个有意义的名称,然后上传com.mysql.jdbc.Driver(如果尚不存在)。
    1. Note: if you did a manual WAR installation, you probably installed the driver already. 注意:如果手动安装了WAR,则可能已经安装了驱动程序。
    2. Download the driver here http://dev.mysql.com/downloads/connector/j/ 在此处下载驱动程序http://dev.mysql.com/downloads/connector/j/
  5. Check the jdbc url. 检查jdbc网址。 Should be something like jdbc:mysql://your_host/your_database 应该类似于jdbc:mysql://your_host/your_database
    1. Small hack is to check your max allow packet setting in your MYSQL server and set it accordingly in your jdbc url. 小技巧是检查MYSQL服务器中的最大允许数据包设置,并在jdbc url中进行相应设置。 On MYSQL driver, check it using this command: 在MYSQL驱动程序上,使用以下命令检查它:
    2. SHOW VARIABLES LIKE 'max_allowed_packet';
    3. Then set the url to: jdbc:mysql://your_host/your_database?maxAllowedPacket=WHATEVER_SIZE_YOU_GOT 然后将URL设置为: jdbc:mysql://your_host/your_database?maxAllowedPacket=WHATEVER_SIZE_YOU_GOT
  6. Check the username, password and timezone and test the connection. 检查用户名,密码和时区并测试连接。
  7. Edit the report on the web interface and set the datasource as being this one. 在Web界面上编辑报告,并将数据源设置为此。

When you upload a new report, either via web interface or iReport Designer, assign this data source. 通过Web界面或iReport Designer上传新报告时,请分配此数据源。

Good luck, hope it solves your problem :) 祝你好运,希望它能解决您的问题:)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM