1

我正在尝试构建一个通过生菜与 redis 通信的 Denodo java 存储过程。

我正在使用 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 项目中实际执行此操作并整理出正确的构建和调试。

4

1 回答 1

0

因此,对于 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 Admin 中创建新的存储过程时浏览到它。

于 2019-09-18T21:57:39.620 回答