猿问

在java 8中与lettuce建立redis连接的正确方法

我正在尝试构建一个 Denodo java 存储过程,通过 lettuce 与 redis 进行通信。


我正在使用 Denodo 推荐的 Denodo 4e eclipse 扩展和氧气。


我显然遗漏了一些东西,因为所有文档都表明


int port = 6379;

String host = "127.0.0.1";

RedisURi uri = RedisURI.Builder.redis(host,port).withDatabase(1).build();

RedisClient client = RedisClient.create(uri);


RedisClient client = RedisClient.create("redis://localhost:6379");

抛出的错误被调试方法掩盖了,我所知道的是,在第一个实例中,构建器失败,在第二个实例中,客户端失败。


当我调用 redis-cli 时,我看到 redis 正在 127.0.0.1:6379> 运行,并且能够获取我设置的测试密钥。


user@system:~$ redis-cli

127.0.0.1:6379> get datum1

"datum2"

我使用默认的 redis.conf 并在同一台机器上运行 eclipse、denodo 和 redis。


redis.conf 中的绑定为 127.0.0.1 ::1 超时已禁用 (0)


我通常不使用 Java 进行开发,所以我希望我显然做错了什么,而不是必须在非 denodo 项目中实际执行此操作并整理出正确的构建和调试。


慕的地6264312
浏览 131回答 1
1回答

一只甜甜圈

对于刚接触 java 或 Denodo 的人来说,这里有一些菜鸟错误。Java 的错误是使用了 catch 异常,它显然并不能捕获所有内容。转向 catch throwable 让我获得了有用的堆栈跟踪,尽管我知道在调试之外不建议这样做,因为 catch throwable 还会捕获底层 JVM 错误以及您在代码中无需处理的内容。根本问题是依赖项的 Java.Lang.ClassNotFoundException。Denodo 的错误是 Denodo 中的 Java 存储过程要么需要导入依赖项 jar,要么应该使用 uber(?)/fat(?) jar。我使用 maven 程序集插件来使用 maven 进行构建,而不是使用 denodo4e 部署工具,然后将 jar 复制到 denodo home 下的 procs 文件夹中,并在 VDP 管理中创建新的存储过程时浏览到它。
随时随地看视频慕课网APP

相关分类

Java
我要回答