【发布时间】:2018-12-08 22:08:00
【问题描述】:
我是使用 JAX-RS 标准的 REST 应用程序的新手,我想了解如何使用此标准。
所以我下载并设置了 Apache Tomcat 9.0 并添加了<Context>
像这样:
<Context docBase="...\RestEasyApp\target\RestEasyApp" path="/example" reloadable="true"/>
然后进入pom.xml,我通过这个依赖添加了RestEasy:
<!-- https://mvnrepository.com/artifact/org.jboss.resteasy/resteasy-jaxrs -->
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<version>3.5.1.Final</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.jboss.resteasy/resteasy-servlet-initializer -->
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-servlet-initializer</artifactId>
<version>3.5.1.Final</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.jboss.resteasy/resteasy-jackson2-provider -->
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jackson2-provider</artifactId>
<version>3.5.1.Final</version>
</dependency>
然后进入web.xml,我创建了Servlet,它看起来像这样:
<web-app>
<listener>
<listener-class>
org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap
</listener-class>
</listener>
<display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>Resteasy</servlet-name>
<servlet-class>
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Resteasy</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
最后我创建了一个处理请求的 Hello.java 类,它看起来像这样:
package com.pisi.resteasyapp;
import javax.ws.rs.*;
@Path("/api")
class Hello {
@GET
@Path("/hello")
public String hello() {
return "HELLO";
}
}
但是当我用这个 uri http://localhost:8080/example/rest/api/hello 运行这个应用程序时,它给了我这个:
我不知道为什么它不起作用。
【问题讨论】:
-
尝试用@Path("/rest/api")改变@Path("/api")
-
@RobertHume,不,它不起作用
-
请看我的回答,我现在测试了;我希望它可以帮助。
标签: java tomcat jax-rs resteasy tomcat9