Apache Ignite的示例(Ignite JDBC Driver)无法连接,因为没有为url找到合适的驱动程序(jdbc:mysql:// ***)

时间:2017-03-09 07:54:53

标签: apache jdbc ignite

我尝试从给定的数据源加载缓存,但失败了。

    Exception in thread "main" javax.cache.integration.CacheLoaderException: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/platform75
        at org.apache.ignite.internal.processors.cache.store.GridCacheStoreManagerAdapter.loadCache(GridCacheStoreManagerAdapter.java:538)
        at org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheAdapter.localLoadCache(GridDhtCacheAdapter.java:497)
        at org.apache.ignite.internal.processors.cache.GridCacheProxyImpl.localLoadCache(GridCacheProxyImpl.java:228)
        at org.apache.ignite.internal.processors.cache.GridCacheAdapter$LoadCacheJob.localExecute(GridCacheAdapter.java:5753)
        at org.apache.ignite.internal.processors.cache.GridCacheAdapter$LoadCacheJobV2.localExecute(GridCacheAdapter.java:5802)
        at org.apache.ignite.internal.processors.cache.GridCacheAdapter$TopologyVersionAwareJob.execute(GridCacheAdapter.java:6473)
        at org.apache.ignite.compute.ComputeJobAdapter.call(ComputeJobAdapter.java:132)
        at org.apache.ignite.internal.processors.closure.GridClosureProcessor$C2V2.execute(GridClosureProcessor.java:2037)
        at org.apache.ignite.internal.processors.job.GridJobWorker$2.call(GridJobWorker.java:556)
        at org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:6564)
        at org.apache.ignite.internal.processors.job.GridJobWorker.execute0(GridJobWorker.java:550)
        at org.apache.ignite.internal.processors.job.GridJobWorker.body(GridJobWorker.java:479)
        at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110)
        at org.apache.ignite.internal.processors.job.GridJobProcessor.processJobExecuteRequest(GridJobProcessor.java:1114)
        at org.apache.ignite.internal.processors.task.GridTaskWorker.sendRequest(GridTaskWorker.java:1375)
        at org.apache.ignite.internal.processors.task.GridTaskWorker.processMappedJobs(GridTaskWorker.java:643)
        at org.apache.ignite.internal.processors.task.GridTaskWorker.body(GridTaskWorker.java:535)
        at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110)
        at org.apache.ignite.internal.processors.task.GridTaskProcessor.startTask(GridTaskProcessor.java:679)
        at org.apache.ignite.internal.processors.task.GridTaskProcessor.execute(GridTaskProcessor.java:403)
        at org.apache.ignite.internal.processors.closure.GridClosureProcessor.callAsync(GridClosureProcessor.java:417)
        at org.apache.ignite.internal.processors.closure.GridClosureProcessor.callAsync(GridClosureProcessor.java:390)
        at org.apache.ignite.internal.processors.cache.GridCacheAdapter.globalLoadCacheAsync(GridCacheAdapter.java:3790)
        at org.apache.ignite.internal.processors.cache.GridCacheAdapter.globalLoadCache(GridCacheAdapter.java:3729)
        at org.apache.ignite.internal.processors.cache.IgniteCacheProxy.loadCache(IgniteCacheProxy.java:390)
        at com.primeton.ignitedb.example.CacheSpringStore.loadCache(CacheSpringStore.java:113)
        at com.primeton.ignitedb.example.CacheSpringStore.main(CacheSpringStore.java:91)
    Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/platform75
        at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:80)
        at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:627)
        at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:692)
        at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:724)
        at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:749)
        at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:764)
        at com.primeton.ignitedb.example.CacheSpringPersonStore.loadCache(CacheSpringPersonStore.java:130)
        at org.apache.ignite.internal.processors.cache.store.GridCacheWriteBehindStore.loadCache(GridCacheWriteBehindStore.java:369)
        at org.apache.ignite.internal.processors.cache.store.GridCacheStoreManagerAdapter.loadCache(GridCacheStoreManagerAdapter.java:512)
        ... 26 more
    Caused by: java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/platform75
        at org.h2.jdbcx.JdbcDataSource.getJdbcConnection(JdbcDataSource.java:192)
        at org.h2.jdbcx.JdbcDataSource.getXAConnection(JdbcDataSource.java:353)
        at org.h2.jdbcx.JdbcDataSource.getPooledConnection(JdbcDataSource.java:385)
        at org.h2.jdbcx.JdbcConnectionPool.getConnectionNow(JdbcConnectionPool.java:227)
        at org.h2.jdbcx.JdbcConnectionPool.getConnection(JdbcConnectionPool.java:199)
        at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111)
        at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77)
        ... 34 more

代码如下:

// Configure Spring session listener.
                cacheCfg.setCacheStoreSessionListenerFactories(new Factory<CacheStoreSessionListener>() {
                    @Override public CacheStoreSessionListener create() {
                        CacheSpringStoreSessionListener lsnr = new CacheSpringStoreSessionListener();

                        lsnr.setDataSource(JdbcConnectionPool.create("jdbc:mysql://localhost:3306/platform75",
        "root", "root"));
                        return lsnr;
                    }
                });

1 个答案:

答案 0 :(得分:1)

如果您尝试将数据从MySQL加载到Ignite,则需要在类路径上安装MySQL驱动程序。只需在启动节点之前将驱动程序JAR放入IGNITE_HOME/libs文件夹,然后重新运行数据加载。