使用POJO数据源并查询Oracle DB

时间:2017-02-08 10:31:05

标签: datasource birt jdbc-odbc

我是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

1 个答案:

答案 0 :(得分:0)

将Oracle JDBC驱动程序ojdbc6.jar(或ojdbc7.jar)复制到子目录%ECLIPSE_HOME%\plugins\org.eclipse.birt.report.data.oda.jdbc_*\drivers中。

..... jdbc _ * ...目录的确切名称取决于您的BIRT版本。