Java使用Jersey框架 + Apache Tomcat 在eclipse上构建 RESTful Web 服务

it2023-01-05  55

Jersey

Jakarta RESTful Web Services provides a foundational API to develop web services following the Representational State Transfer (REST) architectural pattern. 下载链接 帮助文档

A HelloWorld

eclipse和Tomcat的环境搭建这里不再赘述,要注意的是版本的相对应问题

Eclipse :oxygen Tomcat:9.0 Jersey:jaxrs-ri-2.25.1

修改web.xml文件 <servlet> <servlet-name>User REST Service</servlet-name> <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> <init-param> <param-name>javax.ws.rs.Application</param-name> <param-value>com.rest.RestApplication<param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>User REST Service</servlet-name> <url-pattern>/rest/*</url-pattern> </servlet-mapping>

要注意的是,如果用到了第三步的话,<init-param>是上图这样,<param-value>写对应的class名。 我的项目结构是这样的

如果简单返回txt的话,<param-value>根据你的资源类的名字写,就是你写RESTful api的包名。上面的<param-name>也需要修改 注意<servlet-class>标签里面不可以写错,此处加载2.0版本的jersey容器,如果是1.0就写成com.xxxxxxxx。

RESTful接口实现类 import java.ws.rs.GET; import java.ws.rs.POST; import java.ws.rs.Path; import java.ws.rs.Produces; import java.ws.rs.core.MediaType; @Path("/") public class UserService{ @GET @Path("getText") @Produces(MediaType.TEXT_PLAIN) public String getUserText() { return "Hello,World!"; } } 如果返回的是json格式,需要设置RestApplication,还需要引入额外的jar包。 下载链接 import org.glassfish.jersey.jackson.JacksonFeature; import org.glassfish.jersey.server.ResourceConfig; public class RestApplication extends ResourceConfig{ public RestApplication(){ packages("con.rest.resources");//这里写接口方法所在类的类名 register(JacksonFeature.class); } } 把项目部署到Tomcat上就ok了,对于GET方法我们可以通过URL访问来验证 RestDemo:项目名 /rest : <servlet-mapping>中的<url-pattern>定义 /sayHi :下图中定义的path PS:想写POST方法看了半天,结果发现用Soap UI验证的话,只需要把@get 改成 @post 即可

简单记录一些定义

REST

帮助文档 REST全称是Representational State Transfer(表征性状态转移)。REST指的是一组web服务的架构约束条件和原则,如果一个架构符合REST的约束条件和原则,我们就称它为RESTful架构。REST本身并没有创造新的技术、组件或服务,而隐藏在RESTful背后的理念就是使用Web的现有特征和能力, 更好地使用现有Web标准中的一些准则和约束。虽然REST本身受Web技术的影响很深, 但是理论上REST架构风格并不是绑定在HTTP上,只不过目前HTTP是唯一与REST相关的实例。一般接口的返回值是JSON或者XML类型的,用HTTP Status Code传递Server的状态信息。

SOAP

SOAP 是基于 XML 的简易协议,可使应用程序在 HTTP 之上进行信息交换。 或者更简单地说:SOAP 是用于访问网络服务的协议。

最新回复(0)