Jersey客戶端代碼

首先創建一個maven工程

在pom.xml中添加依賴Jar包:

<dependency>
	<groupId>javax.ws.rs</groupId>
	<artifactId>javax.ws.rs-api</artifactId>
	<version>2.0.1</version>
</dependency>

<dependency>
	<groupId>org.glassfish.jersey.core</groupId>
	<artifactId>jersey-client</artifactId>
	<version>2.19</version>
</dependency>

<dependency>
	<groupId>org.glassfish.jersey.media</groupId>
	<artifactId>jersey-media-json-jackson</artifactId>
	<version>2.19</version>
</dependency>

實體類如下:

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

/**
 * 場館
 * 
 * @author 盧豔亮
 * @version 2015年6月27日 下午3:22:10
 */
@XmlRootElement
@SuppressWarnings("serial")
public class TVenueEntity implements java.io.Serializable {

	private long venueId;
	/** 場館名稱 */
	private String venueName;
	/** 1代表主場館 */
	private int master;

	@XmlElement(name = "venueId")
	public long getVenueId() {
		return venueId;
	}

	public void setVenueId(long venueId) {
		this.venueId = venueId;
	}

	@XmlElement(name = "venueName")
	public String getVenueName() {
		return venueName;
	}

	public void setVenueName(String venueName) {
		this.venueName = venueName;
	}

	@XmlElement
	public int getMaster() {
		return master;
	}

	public void setMaster(int master) {
		this.master = master;
	}

}

訪問服務的代碼如下:

import java.util.List;

import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.Response;

import com.wanhang.ydsj.venue.rest.entity.TPlaceEntity;
import com.wanhang.ydsj.venue.rest.entity.TVenueEntity;

public class App {
	
	public static String path = "http://localhost:8888/services/erp/";
	
	public static void main(String[] args) {
//		getById();
		findByVenue();
	}
	
	/**
	 * 測試返回一個實體對象
	 */
	public static void getById() {
		Client client = ClientBuilder.newClient();
		WebTarget target = client.target(path + "venue/1132.json");
		Response response = target.request().get();

		try {
			if (response.getStatus() != 200) {
				throw new RuntimeException("Failed with HTTP error code : " + response.getStatus());
			}
			TVenueEntity venue = response.readEntity(TVenueEntity.class);
			System.out.println("The generated id is " + venue.getVenueName());
		} finally {
			response.close();
			client.close(); // 在真正開發中不要每次關閉client,比如HTTP長連接是由client持有的
		}
	}
	
	/**
	 * 測試返回一個實體對象列表
	 */
	public static void findByVenue() {
		Client client = ClientBuilder.newClient();
		WebTarget target = client.target(path + "venue_3/place.json");
		Response response = target.request().get();

		try {
			if (response.getStatus() != 200) {
				throw new RuntimeException("Failed with HTTP error code : " + response.getStatus());
			}
			List<TPlaceEntity> venues = response.readEntity(new GenericType<List<TPlaceEntity>>(){});
			System.out.println("The generated id is " + venues.size());
		} finally {
			response.close();
			client.close();
		}
	}
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章