java - 在 ubuntu tomcat 上找不到类 com.sun.ws.rs.ext.RuntimeDelegateImpl

标签 java ubuntu tomcat jersey-client

我正在使用 GWT/P 构建一个 webapp,它使用 javax.ws.rs.client 与其他服务进行通信。
泽西客户端用于:

<jersey.version>2.22.2</jersey.version>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.glassfish.jersey</groupId>
            <artifactId>jersey-bom</artifactId>
            <version>${jersey.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependency>
    <groupId>org.glassfish.jersey.core</groupId>
    <artifactId>jersey-client</artifactId>
</dependency>
<dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-moxy</artifactId>
</dependency>
它部署在 tomcat 上(7 和 9 版本,都按预期工作)。但是,在一台 ubuntu 服务器上 ,使用tomcat 9我得到以下异常:
Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: com.sun.ws.rs.ext.RuntimeDelegateImpl
    at javax.ws.rs.ext.RuntimeDelegate.findDelegate(RuntimeDelegate.java:122)
    at javax.ws.rs.ext.RuntimeDelegate.getInstance(RuntimeDelegate.java:91)
    at javax.ws.rs.core.UriBuilder.newInstance(UriBuilder.java:69)
    at javax.ws.rs.core.UriBuilder.fromUri(UriBuilder.java:80)
    at javax.ws.rs.core.UriBuilder.fromUri(UriBuilder.java:99)
    at org.glassfish.jersey.client.JerseyWebTarget.<init>(JerseyWebTarget.java:71)
    at org.glassfish.jersey.client.JerseyClient.target(JerseyClient.java:290)
    at org.glassfish.jersey.client.JerseyClient.target(JerseyClient.java:76)
不知道为什么要找com.sun.ws.rs.ext.RuntimeDelegateImpl而不是 org.glassfish.jersey.internal.RuntimeDelegateImpl ,并且它只发生在那个特定的服务器上(windows、amazon AWS linux、docker linux 工作正常)。
我尝试将 Jersey 版本增加到 2.27(不能再增加,因为较新的版本与 GWT jetty 9.2.14 冲突)。
我已尝试添加 META-INF/services/javax.ws.rs.ext.RuntimeDelegate第一行为 org.glassfish.jersey.internal.RuntimeDelegateImpl .
似乎没有任何效果。我在这里想念什么?有任何想法吗?

最佳答案

gwt-rest-dispatch 包含导致问题的 jsr311-api.jar。
删除此依赖项(因为我的项目不使用它)解决了这个问题。

关于java - 在 ubuntu tomcat 上找不到类 com.sun.ws.rs.ext.RuntimeDelegateImpl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69083272/

相关文章:

linux - Unity3D如何在linux上设置图标

java - 在哪里可以找到有关将 Java 应用程序集成到 Ubuntu 应用程序指示器菜单中的信息?

maven - mvn清理tomcat :run command

java - 在 Java 中,如何根据子数组元素的值最有效地在 JSON 数组中查找数组?

java - 测试两个迭代器的相等性?

apache - 如何使用 Linux 对 Web 服务器进行基准测试/负载测试

java - 从 1.0.5 更新到 1.1.0 后,OCPsoft 重写规则不再起作用

java - Eclipse 启动 tomcat 出现编译错误

java - 没有找到适合 println 的方法... Java

java - 无法获取日期 webelement 的唯一 xpath