gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:17:47 24 4
gpt4 key购买 nike

我正在尝试使用 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>";
}
}

当我尝试访问位于 http://localhost:8080/notifire/webservice/notifier 的 Web 服务时,出现以下错误:

--type Exception report

--message Class javax.ws.rs.core.Application is not a Servlet

--description The server encountered an internal error that prevented it from fulfilling this request.

感谢任何帮助。

最佳答案

您的 Servlet 类有误。不确定您为什么不想使用 IDE,但是有一个 Maven 原型(prototype)可以使用 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>

我在本类(class)中涵盖了所有这些 here .

关于java - 使用 JAX-RS 创建 RESTful Web 服务并将其部署到 tomcat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20442632/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com