找不到Java JAX-RS 404

时间:2018-06-25 15:55:19

标签: java jersey jax-rs

由于某种原因,每次尝试通过404调用服务时,都会得到http://localhost:8080/{context}/v1/{name}。我正在使用TomEE 8.5和JEE7。是的,我已经阅读了关于stackoverflow的其他问题,以防您想将其声明为x的重复项。由于这是我第一次尝试jax-rs / jersey,因此我不确定要添加哪些依赖项,因此这里有一些人建议的依赖项。

<servlet>
    <servlet-name>ApplicationRestService</servlet-name>
    <servlet class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>jersey.config.server.provider.packages</param-name>
        <param-value>com.vio.project.controller</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
   <servlet-mapping>
      <servlet-name>ApplicationRestService</servlet-name>
     <url-pattern>/v1/*</url-pattern>

<!-- https://mvnrepository.com/artifact/org.glassfish.jersey.core/jersey-server -->
<dependency>
    <groupId>org.glassfish.jersey.core</groupId>
    <artifactId>jersey-server</artifactId>
    <version>2.26</version>
</dependency> 
<!-- https://mvnrepository.com/artifact/org.glassfish.jersey.core/jersey-client -->
<dependency>
    <groupId>org.glassfish.jersey.core</groupId>
    <artifactId>jersey-client</artifactId>
    <version>2.26</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.glassfish.jersey.core/jersey-common -->
<dependency>
    <groupId>org.glassfish.jersey.core</groupId>
    <artifactId>jersey-common</artifactId>
    <version>2.26</version>
</dependency>
<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-servlet</artifactId>
    <version>1.19.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.glassfish.jersey.containers/jersey-container-servlet -->
<dependency>
    <groupId>org.glassfish.jersey.containers</groupId>
    <artifactId>jersey-container-servlet</artifactId>
    <version>2.26</version>
</dependency> 
<!-- https://mvnrepository.com/artifact/org.glassfish.jersey.containers/jersey-container-servlet-core -->
<dependency>
    <groupId>org.glassfish.jersey.containers</groupId>
    <artifactId>jersey-container-servlet-core</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.bundles.repackaged</groupId>
  <artifactId>jersey-guava</artifactId>
  <version>2.6</version>

-

@Path("/jobs")
public class JobsApi {

  @GET
  @Produces(MediaType.APPLICATION_JSON)
  public JsonObject testMethod() {
      return Json.createObjectBuilder().add("hello", "world").build();
  }
}

1 个答案:

答案 0 :(得分:0)

您还应该创建一些类来满足请求,例如:

@Path("/hello")
public class Hello {

  // This method is called if TEXT_PLAIN is request
  @GET
  @Produces(MediaType.TEXT_PLAIN)
  public String sayPlainTextHello() {
    return "Hello Jersey";
  }
}

并尝试如下网址: http://localhost:8080/ {context} / v1 / hello