我在使用 jersey 1.18.6 的 google app-engine 上部署了 java 中的 RESTful Web 服务应用程序。我想使用邮戳 java 客户端从它发送交易电子邮件。当我集成它时,我看到了以下异常:
javax.ws.rs.core.Response$Status$Family.familyOf(I)Ljavax/ws/rs/core/Response$Status$Family
据我所知,我认为这个错误是因为使用了两个不同(可能不兼容)的球衣版本,1.18.6 用于 jersey-server、jersey-guice 和 jersey-bundle,2.25.1 用于 jersey-客户(按邮戳)。
然后我尝试将球衣版本 1.18,6 贯穿始终,因此在我的主项目 pom 中,在包括邮戳的依赖项的同时,我排除了 jersey-client (通过添加排除标头)并在我的 main 中单独添加了 jersey-client 依赖项项目 。
但后来我收到以下错误:
java.lang.NoClassDefFoundError: javax/ws/rs/core/MultivaluedHashMap
这是我认为 MultivaluedHashMap 类仅存在于 jax-rs 2.x 版本中(与 jersey 2.x 版本兼容)
所以我的问题是:
是否有使用 jersey 1.x 而不是 jersey 2.x 的邮戳 java 客户端库版本?
如果没有,那么除了将我的主要项目从 jersey 1.x 迁移到 jersey 2.x 之外,我还有什么选择。我不想这样做,因为我们不仅要迁移 jersey 依赖项,而且我认为还有一些其他的东西,比如 guice、shiro 等,这将非常耗时。此外,仅仅为了包含一个附加模块而修改多个现有依赖项似乎并不是最佳选择。