我是BIRT的新手。我正在尝试使用POJO Datasource,它本质上使用一个独立的jar,它有一个代码来查询Oracle DB。 当我添加POJO数据源并预览结果时,我看到以下错误。任何人都可以建议我是否需要做任何特别的事情。 我在运行时属性和设计时属性中添加了独立jar。
org.eclipse.birt.data.engine.odaconsumer.OdaDataException:无法执行该语句。 org.eclipse.datatools.connectivity.oda.OdaException; java.lang.reflect.InvocationTargetException
at org.eclipse.birt.data.engine.odaconsumer.ExceptionHandler.newException(ExceptionHandler.java:52)
at org.eclipse.birt.data.engine.odaconsumer.ExceptionHandler.throwException(ExceptionHandler.java:108)
at org.eclipse.birt.data.engine.odaconsumer.ExceptionHandler.throwException(ExceptionHandler.java:84)
at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.execute(PreparedStatement.java:586)
at org.eclipse.birt.data.engine.executor.DataSourceQuery.execute(DataSourceQuery.java:980)
at org.eclipse.birt.data.engine.impl.PreparedOdaDSQuery$OdaDSQueryExecutor.executeOdiQuery(PreparedOdaDSQuery.java:607)
at org.eclipse.birt.data.engine.impl.QueryExecutor.execute(QueryExecutor.java:1251)
at org.eclipse.birt.data.engine.impl.ServiceForQueryResults.executeQuery(ServiceForQueryResults.java:233)
at org.eclipse.birt.data.engine.impl.QueryResults.getResultIterator(QueryResults.java:178)
at org.eclipse.birt.report.engine.api.impl.ExtractionResults.nextResultIterator(ExtractionResults.java:157)
at org.eclipse.birt.report.designer.data.ui.dataset.DataSetPreviewer.preview(DataSetPreviewer.java:69)
at org.eclipse.birt.report.designer.data.ui.dataset.ResultSetPreviewPage$5.run(ResultSetPreviewPage.java:372)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:119)
引起:org.eclipse.datatools.connectivity.oda.OdaException; java.lang.reflect.InvocationTargetException
at org.eclipse.birt.data.oda.pojo.impl.internal.PojoDataSetFromCustomClass.open(PojoDataSetFromCustomClass.java:194)
at org.eclipse.birt.data.oda.pojo.impl.Query.executeQuery(Query.java:131)
at org.eclipse.datatools.connectivity.oda.consumer.helper.OdaQuery.doExecuteQuery(OdaQuery.java:480)
at org.eclipse.datatools.connectivity.oda.consumer.helper.OdaQuery.executeQuery(OdaQuery.java:444)
at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.execute(PreparedStatement.java:575)
... 9 more
引起:java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.birt.data.oda.pojo.impl.internal.PojoDataSetFromCustomClass.open(PojoDataSetFromCustomClass.java:180)
... 13 more
引起:java.lang.NoClassDefFoundError:oracle / jdbc / OracleDriver
at com.xxx.dao.mock.HitMissDao.getConnection(HitMissDao.java:111)
at com.xxx.dao.mock.HitMissDao.getHitMissDataFromDB(HitMissDao.java:38)
at com.xxx.dao.mock.HitMissDao.getHitMissData(HitMissDao.java:33)
at com.xxx.dataprovider.HitMissDataRetriever.open(HitMissDataRetriever.java:30)
... 18 more
答案 0 :(得分:0)
将Oracle JDBC驱动程序ojdbc6.jar(或ojdbc7.jar)复制到子目录%ECLIPSE_HOME%\plugins\org.eclipse.birt.report.data.oda.jdbc_*\drivers
中。
..... jdbc _ * ...目录的确切名称取决于您的BIRT版本。