Java JAX-RS 404 не найден - PullRequest
       4

Java JAX-RS 404 не найден

0 голосов
/ 25 июня 2018

По какой-то причине я получаю 404 каждый раз, когда пытаюсь позвонить в службу по номеру http://localhost:8080/{context}/v1/{name}. Я использую TomEE 8.5 и JEE 7. И да, я прочитал другие вопросы по 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 голосов
/ 25 июня 2018

Вы также должны создать некоторый класс для обслуживания запроса, например:

@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";
  }
}

И попробуйте URL как: http://localhost:8080/{context}/v1/hello

...