سؤال

I tried to deploy a report to my jasper server. I followed this tutorial: 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.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.java: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(EngineServiceImpl.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

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver Error Trace

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.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(EngineServiceImpl.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)

Does anybody have a clue what could be wrong there ? I am sorry but I am really a ireport amateur.

هل كانت مفيدة؟

المحلول

First you should install the driver on your Jasper Server.

  1. Go to the web interface with a user in the role ROLE_ADMINISTRATOR
  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).
    1. Note: if you did a manual WAR installation, you probably installed the driver already.
    2. Download the driver here http://dev.mysql.com/downloads/connector/j/
  5. Check the jdbc url. Should be something like 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. On MYSQL driver, check it using this command:
    2. SHOW VARIABLES LIKE 'max_allowed_packet';
    3. Then set the url to: 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.

When you upload a new report, either via web interface or iReport Designer, assign this data source.

Good luck, hope it solves your problem :)

نصائح أخرى

try using this guide.. Seems like it cannot find the mysql driver to connect.

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top