使用 JAX-RS 创建 RESTful Web 服务并将其部署到 tomcat

2023-11-25

我正在尝试使用 JAX-RS 创建和部署 RESTful Web 服务并将其部署到 tomcat。我不想使用任何 IDE。 在 Tomcat 中,我在 webapps\ 中有以下目录结构

notifire\WEB-INF\
                 |
                 ---> web.xml
                 |
                 ---> \classes/Notifier.class
                 |
                 ---> \lib\javax.ws.rs-api-2.0

我的 web.xml 包含:

<servlet>
<servlet-name>Web Service Servlet</servlet-name>
<servlet-class>javax.ws.rs.core.Application</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>Web Service Servlet</servlet-name>
<url-pattern>/webservice/*</url-pattern>
</servlet-mapping>

和类文件Notifier.class是从文件编译的Notifier.java.

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.UriInfo;

@Path("notifier")
public class Notifier {

    @Context
    private UriInfo context;

    @GET
    @Produces("text/html")
    public String getHTML() {

         return "<p></p>";
    }
}

当我尝试访问 Web 服务时http://localhost:8080/notifire/webservice/notifier我收到以下错误:

--type 异常报告

--message 类 javax.ws.rs.core.Application 不是 Servlet

--description 服务器遇到内部错误,无法满足此请求。

任何帮助表示赞赏。


您的 Servlet 类错误。不知道为什么您不想使用 IDE,但是有一个 Maven 原型可以使用 Jersey 开发人员定义的适当类来为您布局项目结构。我的 web.xml 如下所示:

<servlet>
    <servlet-name>Jersey Web Application</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.pluralsight</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>Jersey Web Application</servlet-name>
    <url-pattern>/webapi/*</url-pattern>
</servlet-mapping>

我在本课程中涵盖了所有这些内容here.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 JAX-RS 创建 RESTful Web 服务并将其部署到 tomcat 的相关文章

随机推荐