如何让 JAX RS 2 客户端从 Domino 脚本库工作?

How to get JAX RS 2 client working from Domino script library?

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

我首先尝试使用 Jersey 2。首先是最新版本,然后是一些较旧的 Jersey 2 版本,并且总是遇到一个异常,该异常在不同版本中有所不同,但主要是 ExceptionInInitializerError。我首先在 Exclipse 中使用 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;

任何地方都没有提到泽西岛。在我的理解中,这意味着它没有找到 CXF ClientBuilder 实现并且异常显示默认实现。

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

有什么想法吗?

Domino Designer 和服务器版本是 10。

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

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

client.register(new JacksonJsonProvider())

我只在脚本库中添加了 Jackson jars: