Java Jersey 2.26-启动服务器时无此字段错误

Java Jersey 2.26-启动服务器时无此字段错误,java,jersey-2.0,Java,Jersey 2.0,我正在尝试使用Jersey和Jetty设置一个简单的服务器。但是,中的代码会引发以下错误: Exception in thread "main" java.lang.NoSuchFieldError: GIT_HASH at org.eclipse.jetty.server.Server.doStart(Server.java:370) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.ja

我正在尝试使用Jersey和Jetty设置一个简单的服务器。但是,中的代码会引发以下错误:

Exception in thread "main" java.lang.NoSuchFieldError: GIT_HASH
at org.eclipse.jetty.server.Server.doStart(Server.java:370)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.glassfish.jersey.jetty.JettyHttpContainerFactory.createServer(JettyHttpContainerFactory.java:305)
at org.glassfish.jersey.jetty.JettyHttpContainerFactory.createServer(JettyHttpContainerFactory.java:135)
at com.zoho.dfs.App.main(App.java:17)
这是我的
App.java
课程:

public class App
{
    public static void main(String[] args) {

        URI baseUri = UriBuilder.fromUri("http://127.0.0.1/").port(8050).build();
        ResourceConfig config = new ResourceConfig(RestController.class);
        Server server = JettyHttpContainerFactory.createServer(baseUri, config);

        try {
            server.start();
            server.join();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}
RestController.class
(我想映射一个

@Path("/{username}")
public class RestController {

    @GET
    @Path("/home")
    @Produces(MediaType.APPLICATION_JSON)
    public Response read(@PathParam("username") String username) {
        String name = "hello " + username;

        return Response.status(200).entity(name).build();
    }
}
下面是
pom.xml
依赖项:

<dependencies>
    <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-server</artifactId>
        <version>9.4.8.v20171121</version>
    </dependency>
    <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-servlet</artifactId>
        <version>9.4.8.v20171121</version>
    </dependency>
    <dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-jetty-http</artifactId>
        <version>2.26</version>
    </dependency>
    <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-moxy</artifactId>
        <version>2.26</version>
    </dependency>
    <dependency>
        <groupId>org.json</groupId>
        <artifactId>json</artifactId>
        <version>20180130</version>
    </dependency>
    <dependency>
        <groupId>org.glassfish.jersey.inject</groupId>
        <artifactId>jersey-hk2</artifactId>
        <version>2.26</version>
    </dependency>
</dependencies>

org.eclipse.jetty
jetty服务器
9.4.8.v20171121
org.eclipse.jetty
码头servlet
9.4.8.v20171121
org.glassfish.jersey.containers
泽西集装箱码头http
2.26
org.glassfish.jersey.media
泽西媒体公司
2.26
org.json
json
20180130
org.glassfish.jersey.inject
泽西-hk2
2.26

我也尝试过添加依赖项,如
jersey服务器
jersey容器servlet核心
等。这是同样的错误。我在做什么可能会出错?

从依赖项中删除
jetty服务器
jetty servlet
,它们将被
jersey容器jetty http
jersey容器jetty servlet
,您需要添加它。下面是一些基本的依赖项,您需要集成
jetty
jersey

<dependencies>
    <dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-jetty-http</artifactId>
        <version>2.26</version>
    </dependency>

    <dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-jetty-servlet</artifactId>
        <version>2.26</version>
    </dependency>

    <dependency>
        <groupId>org.glassfish.jersey.inject</groupId>
        <artifactId>jersey-hk2</artifactId>
        <version>2.26</version>
    </dependency>

    <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-moxy</artifactId>
        <version>2.26</version>
    </dependency>

    <dependency>
        <groupId>org.json</groupId>
        <artifactId>json</artifactId>
        <version>20180130</version>
    </dependency>
</dependencies>

执行
JettyHttpContainerFactory.createServer(baseUri,配置)时
,它使用给定的
配置创建一个容器,然后创建一个服务器并启动它。

从依赖项中删除
jetty server
jetty servlet
,它们将被需要添加的
jersey container jetty http
jersey container jetty servlet
拉入您需要集成
jetty
jersey
的一些基本依赖项:

<dependencies>
    <dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-jetty-http</artifactId>
        <version>2.26</version>
    </dependency>

    <dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-jetty-servlet</artifactId>
        <version>2.26</version>
    </dependency>

    <dependency>
        <groupId>org.glassfish.jersey.inject</groupId>
        <artifactId>jersey-hk2</artifactId>
        <version>2.26</version>
    </dependency>

    <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-moxy</artifactId>
        <version>2.26</version>
    </dependency>

    <dependency>
        <groupId>org.json</groupId>
        <artifactId>json</artifactId>
        <version>20180130</version>
    </dependency>
</dependencies>

执行
JettyHttpContainerFactory.createServer(baseUri,配置)时
,它使用给定的
配置创建一个容器,然后创建一个服务器并启动它。

jersey container jetty http
已经拉入jetty。可能是版本不兼容。请尝试删除jetty deps。如果需要servlet支持,请改用
jersey container jetty servlet
并使用
JettyWebCContainerFactory
jersey container jetty http
已经拉入jetty。可能是版本不兼容。请尝试删除jetty deps。如果希望servlet支持,请使用
jersey container jetty servlet
代替,并使用
JettyWebContainerFactory