我尝试使用Ignite Jdbc连接;我的目标是能够通过Jdbc从任何客户端调用缓存。
我有很多场景在工作;所以数据加载正确;并且可以直接运行sql查询'反对缓存。
当我尝试使用
从单独的客户端拨打电话时
ResultSet rs = conn.createStatement().executeQuery("select * from my_table");
我遇到了错误:
class org.apache.ignite.IgniteCheckedException: Failed to find class with given class loader for unmarshalling (make sure same versions of all classes are available on all nodes or enable peer-class-loading) [clsLdr=URLClassLoader with NativeCopyLoader with RawResources(
有没有办法阻止Ignite jdbc连接尝试进行任何解组?
我希望我的客户对Ignite类尽可能不可知。例如;我想将mariaDb调用为Ignite - 尽可能在客户端更改代码。
如果我以错误的方式思考问题;那么No, that will never work because ...
的答案也非常受欢迎。
由于 布伦特
答案 0 :(得分:1)
如果您不希望将副本库复制到客户端的lib文件夹,则可以打开对等类加载:
<bean class="org.apache.ignite.configuration.IgniteConfiguration">
...
<!-- Explicitly enable peer class loading. -->
<property name="peerClassLoadingEnabled" value="true"/>
...
</bean>
此外,您可以使用BinaryObject而不是您的类。 Here是使用带有BinaryObjects的sql的一些示例。有关二进制格式的更多信息,请参见here。