1
我试图从现有的Oracle表中配置和读取数据 但是,在调用cache.loadCache();
此行时收到错误消息。无法使用Ignite V2.0连接并从Oracle加载数据
它显示错误消息 消息
session:javax.cache.integration.CacheWriterException: Failed to start store
session [tx=null]Caused by: java.sql.SQLException: No suitable driver found
for jdbc:oracle:thin:@192.168.2.218:1521:xe at
org.h2.jdbcx.JdbcDataSource.getJdbcConnection(JdbcDataSource.java:190) at
org.h2.jdbcx.JdbcDataSource.getXAConnection(JdbcDataSource.java:351) at
org.h2.jdbcx.JdbcDataSource.getPooledConnection(JdbcDataSource.java:383) at
org.h2.jdbcx.JdbcConnectionPool.getConnectionNow(JdbcConnectionPool.java:226)
at
org.h2.jdbcx.JdbcConnectionPool.getConnection(JdbcConnectionPool.java:198)
at
CacheConfiguration<String, TempClass> cacheCfg = new CacheConfiguration<String, TempClass>();
cacheCfg.setName("Test_CacheConfig");
IgniteConfiguration igniteConfig = new IgniteConfiguration();
Factory<TempClassCacheStore> factory = FactoryBuilder.factoryOf(TempClassCacheStore.class);
cacheCfg.setReadThrough(true);
cacheCfg.setWriteThrough(true);
cacheCfg.setIndexedTypes(String.class, TempClass.class);
cacheCfg.setCacheStoreFactory(factory);
cacheCfg.setCacheStoreSessionListenerFactories(new Factory<CacheStoreSessionListener>() {
@Override
public CacheStoreSessionListener create() {
CacheJdbcStoreSessionListener lsnr = new CacheJdbcStoreSessionListener();
lsnr.setDataSource(JdbcConnectionPool.create("jdbc:oracle:thin:@192.168.2.218:1521:xe", "test", "test"));
return lsnr;
}
});
Ignite ignite = Ignition.start(igniteConfig);
IgniteCache<String, TempClass> cache = ignite.getOrCreateCache(cacheCfg);
cache.loadCache(null);
SqlFieldsQuery sql = new SqlFieldsQuery("SELECT ID_, NAME_ FROM TEST_TABLE");
QueryCursor<List<?>> cursor = cache.query(sql);
如图 https://apacheignite.readme.io/docs/persistent-store#cachestore 任何帮助将高度赞赏
感谢@Evgenii它的一种混乱我开始从java程序本身点燃服务器,我认为它与我已经存储在本地计算机上的点燃二进制文件无关,我甚至没有设置我的点火回家。 所以我很困惑它如何访问存储在我的本地计算机上的点燃实例?是的,我的项目班级路径中已经有了oracle jar。 –
我不理解你,你在哪里以及如何开始点燃服务器?服务器的类路径中有库吗? –
我在我的java项目的maven配置中显示了ingine库,如下所示。 https://apacheignite.readme.io/docs/getting-started#get-it-with-maven并使用上面的代码,我开始点燃实例。我没有任何其他节点在我的电脑上运行或设置。即我不使用/ignite.bat文件启动服务器。 –