Java jersey hello world返回404

时间:2017-08-10 08:54:30

标签: rest maven java-ee jersey

我正在尝试在maven java项目中使用jersey创建REST api。但我似乎总是从服务器得到404响应。

这是我的java类:

@Path("/login")
public class LoginController {
    @GET
    @Path("/hello")
    @Produces("text/plain")
    public String hello() {
        return "Hello world";
    }
}

非常简单。

我的web.xml文件如下所示:

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>REST API</display-name>

  <servlet>
    <servlet-name>jersey-servlet</servlet-name>
    <servlet-class>
        com.sun.jersey.spi.container.servlet.ServletContainer
    </servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>jersey-servlet</servlet-name>
    <url-pattern>/ws/*</url-pattern>
  </servlet-mapping>

</web-app>

这就是我的pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>se.example</groupId>
  <artifactId>rest</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <name>Rest Maven Webapp</name>
  <dependencies>

    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-bundle</artifactId>
        <version>1.19.1</version>
    </dependency>
  </dependencies>
</project>

但是当我尝试在浏览器中打开http://localhost:8080/rest/ws/login/hello时。我刚收到404回复。

我错过了一些明显的东西吗?

1 个答案:

答案 0 :(得分:0)

使用泽西最新的捆绑2.25.1,这是稳定的

添加拒绝依赖项并重试

mvn archetype:generate -DarchetypeArtifactId=jersey-quickstart-webapp \
            -DarchetypeGroupId=org.glassfish.jersey.archetypes -DinteractiveMode=false \
            -DgroupId=com.example -DartifactId=simple-service-webapp -Dpackage=com.example \
            -DarchetypeVersion=2.25.1

如果不起作用

使用maven命令行创建应用程序并比较配置

services.AddSession(options =>
            {
                // Session timeout is at 2 hours
                options.IdleTimeout = TimeSpan.FromHours(2);
            }); /