微服务框架Jersey:快速入门
生活随笔
收集整理的这篇文章主要介绍了
微服务框架Jersey:快速入门
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
本文介绍如何利用Jersey和嵌入式的Jetty容器构建微服务应用,包括基本框架搭建、服务启动和服务访问等。
环境及版本
开发环境:Windows 7 、IntelJ IDEA、maven、jdk
Jersey:2.19
JDK: 1.8
基本框架搭建
搭建Jersey微服务应用,基本框架构建主要步骤:
- 创建maven工程,组织依赖库和编译插件
- 编写服务器启动类
- 注册REST资源
- 日志配置
整体框架结构如图所示:
maven配置
新建mavan工程,引入Jersey、Jetty、log4j等依赖库,并为工程指定编译器为jdk 1.8。
<?xml version="1.0" encoding="UTF-8"?> <project><modelVersion>4.0.0</modelVersion><groupId>rest</groupId><artifactId>rest</artifactId><version>1.0.0</version><properties><jetty.version>9.3.8.v20160314</jetty.version><jersey2.version>2.19</jersey2.version></properties><dependencies><!--jersey--><dependency><groupId>org.glassfish.jersey.containers</groupId><artifactId>jersey-container-servlet</artifactId><version>${jersey2.version}</version></dependency><!--jetty容器--><dependency><groupId>org.eclipse.jetty</groupId><artifactId>jetty-servlet</artifactId><version>${jetty.version}</version></dependency><!--日志--><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>1.7.25</version></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>2.3.2</version><configuration><source>1.8</source><target>1.8</target></configuration></plugin></plugins></build> </project>服务器入口
编写服务启动类
package org.bigdata;import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.handler.HandlerList; import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.servlet.ServletHolder; import org.glassfish.jersey.servlet.ServletContainer;public class JettyServer {public static void main(String[] args) throws Exception {int port = 8081;Server server = new Server(port);ServletHolder sh = new ServletHolder(ServletContainer.class);//监听的资源sh.setInitParameter("jersey.config.server.provider.packages","org.bigdata.res");ServletContextHandler apiContext = new ServletContextHandler(ServletContextHandler.SESSIONS);apiContext.addServlet(sh, "/*");apiContext.setContextPath("/");HandlerList handlerList = new HandlerList();handlerList.addHandler(apiContext);server.setHandler(handlerList);server.start();}}编写资源类
编写一个简单的资源类,用于响应用户的/hello请求。编写完成后,一定要在服务器启动类中注册资源。sh.setInitParameter("jersey.config.server.provider.packages","org.bigdata.res");
package org.bigdata.res;import javax.jws.WebService; import javax.servlet.http.HttpServletRequest; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.core.Context;@Path("") @WebService public class WelcomeRes {@Path("hello")@GETpublic String sayHello(@Context HttpServletRequest request) {return "hello, jetty!";} }日志配置
Jersey框架的日志要在框架中显示引入,如果没有显示引入log4j框架,服务器启动时会提示如下异常。
log4j:WARN No appenders could be found for logger (dao.hsqlmanager). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.引入log4j框架,并指定日志输出文件log4j.properties。
log4j.rootLogger=INFO,A1log4j.appender.A1=org.apache.log4j.ConsoleAppender log4j.appender.A1.layout=org.apache.log4j.PatternLayout log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p %c{2} %m%n log4j.appender.A1.Threshold=INFO服务启动
运行JettyServer类,启动服务器。如图所示:
通过浏览器输入http://localhost:8081/hello请求服务,查看返回结果。
总结
以上是生活随笔为你收集整理的微服务框架Jersey:快速入门的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 为你总结了N个真实线上故障,从容应对面试
- 下一篇: 几款web富文本编辑器汇总整理