【问题标题】:java.lang.NoSuchMethodError: getProperties()Ljava/util/Map;java.lang.NoSuchMethodError: getProperties()Ljava/util/Map;
【发布时间】:2016-01-10 02:44:57
【问题描述】:

我正在使用 Jersey 创建一个 REST API。在我的本地机器上,我使用 maven 运行 Apache Tomcat 8。当我在本地机器上运行 eclipse 时,它​​工作正常。但是,当我尝试在远程服务器上通过 Jenkins 构建时(我将更改推送到远程服务器并让它在那里构建),我收到以下错误

java.lang.NoSuchMethodError: javax.ws.rs.core.Application.getProperties()Ljava/util/Map;
org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:331)
org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:390)
org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:172)
org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:364)
javax.servlet.GenericServlet.init(GenericServlet.java:158)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:521)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1096)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:674)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456)
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
java.lang.Thread.run(Unknown Source)

这是我的 pom.xml

 <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>

    <dependencies>
        <dependency>
            <groupId>org.glassfish.jersey.media</groupId>
            <artifactId>jersey-media-moxy</artifactId>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jersey.containers</groupId>
            <artifactId>jersey-container-servlet-core</artifactId>
        </dependency>
        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-json</artifactId>
            <version>1.19</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.dataformat</groupId>
            <artifactId>jackson-dataformat-xml</artifactId>
            <version>2.6.3</version>
        </dependency>
        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongodb-driver</artifactId>
            <version>3.1.0</version>
        </dependency>
        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-client</artifactId>
            <version>1.19</version>
        </dependency>
    </dependencies>
    <properties>
        <jersey.version>2.22.1</jersey.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

我在网上搜索过,它说这与 Jerser v1 和 v2 相互冲突有关。我的本地机器和远程机器具有相同的源代码、相同的 JDK,但是在部署时,远程机器在命中端点时会抛出该错误。可能会出什么问题

【问题讨论】:

  • 此错误意味着代码是针对具有此方法的 Jersey 版本编译的,但是您尝试使用过时的 Jersey 版本运行它。查看远程机器上的 Tomcat 目录 - 是否有一个流氓 jar 隐藏在某个地方?
  • 另外,我刚刚注意到您没有为您的两个依赖项指定版本。我什至不确定您的项目是如何编译的 - 我认为这会导致 Maven 错误。
  • @MikeBaranczak 项目正在编译,因为 OP 正在使用 &lt;scope&gt;import&lt;/scope&gt; 导入 jersey-bom。版本在那里定义。但是看来 OP 正在重新定义jersey-client 版本,所以这里肯定有问题。
  • 泽西客户端是 1.X 而其余的是 2.X?我认为这行不通……这是导致问题的原因。

标签: java maven tomcat jenkins


【解决方案1】:

问题是混合 Jersey 1 和 2。删除了旧的 jersey 1 代码并使用 jersey2 实现并已修复(根据上面的 cmets)。

【讨论】:

    猜你喜欢
    • 2017-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-28
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 2019-02-21
    相关资源
    最近更新 更多