0

我需要从 LotusScript 代理调用 REST API。我正在使用 LS2J,所以我在脚本库中有 Java 代码。

我第一次尝试使用 Jersey 2。首先是最新版本,然后是一些较旧的 Jersey 2 版本,并且总是得到一个例外,这在不同版本中有所不同,但主要是ExceptionInInitializerError. 我首先在 Exclipse with Maven 中解决了依赖关系,因此我可以导入所有需要的 jar 文件。

然后我决定尝试使用 Apache CXF。我从我的 pom 开始:

<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-rt-rs-client</artifactId>
    <version>3.2.7</version>
</dependency>

并将所有已解析的 JAR 从 Maven 存储库导入到 Domino 脚本库:

在此处输入图像描述

代码编译得很好,但在运行时我得到了这个:

java.lang.ClassNotFoundException: org.glassfish.jersey.client.JerseyClientBuilder

代码中与 JAX RS 相关的导入如下:

import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.MediaType;

任何地方都没有提到泽西岛。据我了解,这意味着它没有找到 CXFClientBuilder实现,并且异常显示了默认实现。

我让 REST 客户端与 Jersey 1 一起工作,但我讨厌使用石器时代的解决方案。

有任何想法吗?

Domino Designer 和服务器版本为 10。

4

1 回答 1

0

我从脚本库中删除了所有 jar javax.ws.rs-api-2.1.1.jar,并将所有这些 jar 添加到domino 安装下的/jvm/lib/ext中。然后它开始工作。

对于 JSON 处理,我使用 Jackson 并以这种方式注册提供程序:

client.register(new JacksonJsonProvider())

我只在脚本库中添加了杰克逊罐子:

在此处输入图像描述

于 2018-12-06T14:40:55.383 回答