`

jersey RestFull开发模式

阅读更多

在使用jersey前,需要添加jersey的pom依赖,其中包含了jersey与grizzly2集成测试依赖

 

		<dependency>
			<groupId>com.sun.jersey</groupId>
			<artifactId>jersey-server</artifactId>
			<version>1.9.1</version>
		</dependency>
		
		<dependency>
			<groupId>com.sun.jersey</groupId>
			<artifactId>jersey-grizzly2</artifactId>
			<version>1.9.1</version>
		</dependency>
		 <dependency>
               			 <groupId>com.sun.jersey.jersey-test-framework</groupId>
               			 <artifactId>jersey-test-framework-grizzly2</artifactId>
              			 <version>1.9.1</version>
               			 <scope>test</scope>
        		 </dependency>
		 <dependency>
			<groupId>com.sun.jersey</groupId>
			<artifactId>jersey-client</artifactId>
			 <version>1.16</version>
		</dependency>

 

 

首先需要启动

public class Main{  
     
	private static URI getBaseURI() {
		return UriBuilder.fromUri("http://localhost/").port(9998).build();
	}
	
	public static final URI BASE_URI = getBaseURI();
	
	protected static HttpServer startServer() throws IOException {
		System.out.println("Starting grizzly...");
		ResourceConfig rc = new PackagesResourceConfig("com.resource");//这个地址是rest类的目录
		return GrizzlyServerFactory.createHttpServer(BASE_URI, rc);
	}
    public static void main(String[] args) throws IOException {
    	/**
    	 * 启动单例SpringContext
    	 * 在服务start之前装载,第一次加载较慢,避免并发访问带来的加载spring异常
    	 */
    	SpringUtils.start();
    	
    	/**
    	 * 启动Grizzly web Server
    	 */
    	HttpServer httpServer = startServer();
    	System.out.println(String.format("Jersey app started with WADL available at "
    	                   + "%sapplication.wadl\nHit enter to stop it...",
    	                   BASE_URI, BASE_URI));
    	System.in.read();
    	httpServer.stop();
    }           
}
 HelloWorldResource.java
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;

// The Java class will be hosted at the URI path "/helloworld"
@Path("/helloworld")
public class HelloWorldResource {

    // The Java method will process HTTP GET requests
    @GET 
    // The Java method will produce content identified by the MIME Media
    // type "text/plain"
    @Produces("text/plain")
    public String getClichedMessage() {
        // Return some cliched textual content
        return "Hello World";
    }
}
HelloWorldResourceTest.java

 

import static org.junit.Assert.*;

import org.junit.Test;

import com.sun.jersey.api.client.WebResource;
import com.sun.jersey.test.framework.JerseyTest;

public class HelloWorldResourceTest extends JerseyTest {

    public HelloWorldResourceTest()throws Exception {
        super("com.resource");");//这个地址是rest类的目录
    }

    @Test
    public void testHelloWorld() {
        WebResource webResource = resource();
        String responseMsg = webResource.path("helloworld").get(String.class);
        assertEquals("Hello World", responseMsg);
    }

}

 

这时使用junit运行HelloWorldResourceTest.java就可以运行rest 风格的测试了。

 

分享到:
评论

相关推荐

    jersey RESTfull最新版全部jar和官方demo.rar

    压缩包中包含:jersey RESTfull最新版全部jar和官方demo

    初试基于Jersey框架的RESTful服务开发

    NULL 博文链接:https://smartzxy.iteye.com/blog/592843

    SpringMVC HelloWorld Restfull 项目

    - MVC 模式:将应用程序分为三个核心组件——模型(Model)、视图(View)和控制器(Controller)。模型处理业务逻辑,视图负责呈现数据,而控制器接收用户请求并协调模型与视图。 - SpringMVC 提供了灵活的配置,...

    java restFull及示例和Maven.rar

    这是一本关于Java RESTful服务开发的书籍,提供了详细的理论知识和实战案例,可以帮助读者深入理解RESTful服务的开发。 通过这些文件,我们可以学习到如何使用Java和Maven构建RESTful服务,理解RESTful API的设计...

    spring restfull 解决方案

    Spring框架是Java领域的一个重量级框架,尤其在企业级应用开发中广泛应用。Spring提供了强大的依赖注入(DI)和面向切面编程(AOP)功能,使得开发者可以更加专注于业务逻辑,而非底层基础设施。Spring Restful模块...

    java restfull web service

    This specification defines a set of Java APIs for the development of Web services built according to the Representational State Transfer[1] (REST) architectural style. Readers are assumed to be ...

    Spring Boot-RESTfull API入门.rar

    1. **MVC 模式**:Spring Boot 基于 Spring MVC 框架提供了一种简洁的 Web 开发方式。你可以使用 `@RestController` 注解标记控制器类,而 `@RequestMapping` 和 `@GetMapping`、`@PostMapping` 等注解则用于映射...

    WCFRestFull空框架

    WCF Restful服务结合了WCF的强大功能和REST的简洁性,使得开发高效、跨平台的Web服务变得更加便捷。通过理解并掌握WCF RESTful的实现原理和关键特性,开发者可以构建出高性能、可扩展的服务,满足现代互联网应用的...

    WCF Restfull 实现

    项目需要要和别人对接,对方用的是RestFul接口,Java平台的,我们是.NET平台的,需要编写RestFul调用客户端,为了测试也要相应的服务端,虽然我也会Java语言,但是不熟啊,搞个环境都要一两天。...

    restfull接口 Retrofi

    Retrofit是一个非常流行的Java库,由Square公司开发,用于将Android和Java应用程序连接到RESTful API。Retrofit通过简单的注解和接口设计,使得网络调用变得简洁而直观。 首先,我们要理解RESTful的基本原则。REST...

    Modular-Java-Jersey-Vue:Moduler Java,嵌入式Tomcat,Jersey,Vue,Restfull WebApp

    该应用程序演示了面向服务的RESTfull应用程序的各个部分。 演示(Heroku托管) 大约需要2-3分钟才能启动实例 技术栈 零件 技术 后端郎 Java 11(带有模块) 宁静的框架 泽西岛 容器 Tomcat 9(嵌入式模式) ...

    restfull+gradle+demo

    在这个`TestMVC01`可能的项目中,`Test`可能指的是测试,`MVC`代表Model-View-Controller模式,这是一种常见的Web开发架构。`01`可能表示这是一个系列的初始示例。在实际的项目中,你可能会看到单元测试、集成测试...

    thinkphp_3.2.3_full php开发框架

    ThinkPHP 3.2.3是基于MVC(Model-View-Controller)模式的PHP框架,它遵循Apache2开源协议发布,旨在简化Web应用开发,提高开发效率。该框架强调代码复用,支持模块化设计,具备良好的扩展性和灵活性,能够满足各种...

    ssi+restfull freemarker整合源代码

    主流技术struts2+spring2.5+ibaits+freemarker+restfull整合开发增删改查例子,带分页功能哦,分页和qq新闻分页一样的效果,项目结构清晰,拓展强。程序在myeclipse6.5下开发完成,jar包里面都有,直接导入就可以...

    restfull_php:restfull_php

    在现代Web开发中,RESTful API设计已经成为构建可扩展、可维护的网络服务的主流方式。REST(Representational State Transfer,表述性状态转移)是一种架构风格,用于设计分布式系统,特别是互联网应用。本文将深入...

    codeigniter-RestFull-Automatic:一个完整的实现 Restfull GET、PUT、POST、DELETE、自动

    CodeIgniter RestFull Automatic 您是否认为 repetivo 必须为所有表创建所有标准方法才能进行 Restfull 映射? 欢迎这是 CodeIgniter Restfull Automatic。 看下面它的优点: 一个完整的实现 Restfull GET、PUT、...

    深入了解JAVA Jersey框架

    2. 创建RESTful服务:使用Jersey框架提供的注释和API标准化,开发RESTful Web服务。 3. 使用Jersey客户端API:与RESTful服务轻松通信。 4. 使用Jersey集成:轻松继承Spring、Guice、Apache Abdera的库。 Jersey框架...

    ssi+restfull整合源代码

    项目适合对struts2,spring,ibatis 和 restfull以及jquery有所了解的人员用来学习研究执行原理之用,亦可以作为项目对功能进行延伸。底层已经写好的基类。只要在此基础上拓展自己需要的功能接口就可以了,另外项目中...

    restfull-api:由 NodeJS 提供支持的 Restfull API

    restfull-api 由 NodeJS 提供支持的 Restfull API 我们需要安装 Mongo DB - - 安装 下载所需版本的 MongoDB 的二进制文件。 从下载二进制文件。 例如,要通过 shell 下载最新版本,请发出以下命令: curl -O ...

Global site tag (gtag.js) - Google Analytics