本文主要是介绍restlet-jse,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、实体
Contact
package com.tht.common;import java.io.Serializable;public class Contact implements Serializable {private int id;private static final long serialVersionUID = 1L;private int age;private String firstName;private Address homeAddress;private String lastName;public Contact() {}public Contact(String firstName, String lastName, Address homeAddress,int age) {super();this.firstName = firstName;this.lastName = lastName;this.homeAddress = homeAddress;this.age = age;}public Contact(int id,String firstName, String lastName, Address homeAddress,int age) {super();this.id=id;this.firstName = firstName;this.lastName = lastName;this.homeAddress = homeAddress;this.age = age;}public int getAge() {return age;}public String getFirstName() {return firstName;}public Address getHomeAddress() {return homeAddress;}public String getLastName() {return lastName;}public void setAge(int age) {this.age = age;}public void setFirstName(String firstName) {this.firstName = firstName;}public void setHomeAddress(Address homeAddress) {this.homeAddress = homeAddress;}public void setLastName(String lastName) {this.lastName = lastName;}public int getId() {return id;}public void setId(int id) {this.id = id;}@Overridepublic boolean equals(Object obj) {return super.equals(obj);}}
二、实体 Address
package com.tht.common;import java.io.Serializable;public class Address implements Serializable {private static final long serialVersionUID = 1L;private String line1;private String line2;private String zipCode;private String city;private String country;public Address() {}public Address(String line1, String line2, String zipCode, String city,String country) {super();this.line1 = line1;this.line2 = line2;this.zipCode = zipCode;this.city = city;this.country = country;}public String getCity() {return city;}public String getCountry() {return country;}public String getLine1() {return line1;}public String getLine2() {return line2;}public String getZipCode() {return zipCode;}public void setCity(String city) {this.city = city;}public void setCountry(String country) {this.country = country;}public void setLine1(String line1) {this.line1 = line1;}public void setLine2(String line2) {this.line2 = line2;}public void setZipCode(String zipCode) {this.zipCode = zipCode;}}
三、服务资源
package firstSteps;import org.restlet.Application;
import org.restlet.Component;
import org.restlet.Restlet;
import org.restlet.data.Protocol;
import org.restlet.routing.Router;import com.tht.resource.ContactServerResource;public class FirstStepsApplication extends Application {/*** Creates a root Restlet that will receive all incoming calls.*/@Overridepublic synchronized Restlet createInboundRoot() {// Create a router Restlet that routes each call to a new instance of HelloWorldResource.Router router = new Router(getContext());// Defines only one routerouter.attach("/hello", ContactServerResource.class);return router;}/* public static void main(String[] args) throws Exception { // Create a new Component. Component component = new Component(); // Add a new HTTP server listening on port 8182. component.getServers().add(Protocol.HTTP, 8182); // Attach the sample application. component.getDefaultHost().attach("/firstSteps", new FirstStepsApplication()); // Start the component. component.start(); } */
}
package com.tht.resource;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import org.restlet.resource.ServerResource;import com.tht.common.Address;
import com.tht.common.Contact;
import com.tht.common.ContactResource;public class ContactServerResource extends ServerResource implementsContactResource {public ContactServerResource(){}private static Contact contact = new Contact("firstName1", "lastName1", new Address("Address1", "Address2", "20010", "city1", "country1"), 10);@Overridepublic void remove(String key) {contact=null;}@Overridepublic Contact retrieve() {return contact;}@Overridepublic void store(Contact contact) {this.contact=contact;}}
三启动服务
import org.restlet.Component;
import org.restlet.data.Protocol;import firstSteps.FirstStepsApplication;/*** 启动程序 开起服务http://localhost:8182/firstSteps* *可以访问请求路径: http://localhost:8182/firstSteps/hello* @author think**/
public class Run {public static void main(String[] args) throws Exception { // Create a new Component. Component component = new Component(); // Add a new HTTP server listening on port 8182. component.getServers().add(Protocol.HTTP, 8182); // Attach the sample application. component.getDefaultHost().attach("/firstSteps", new FirstStepsApplication()); // Start the component. component.start(); } }
四、启动客户端
package com.tht.client;import com.tht.common.Contact;
import com.tht.common.ContactResource;
import java.io.IOException;
import java.util.List;
import java.util.Map;import org.restlet.data.MediaType;import org.restlet.resource.ClientResource;
import org.restlet.resource.ResourceException;public class GetRequest {public static void main(String[] args) throws ResourceException,IOException {ClientResource cr = new ClientResource("http://localhost:8182/firstSteps/hello");// Get the Contact objectContactResource resource = cr.wrap(ContactResource.class);Contact contact = resource.retrieve();if (contact != null) {System.out.println("firstname: " + contact.getFirstName());System.out.println(" lastname: " + contact.getLastName());System.out.println(" age: " + contact.getAge());}/** Map<String, Contact> contacts = resource.retrieve(); Contact* contact=null; for(Object key : contacts.keySet()){* System.out.println("key:"+key);* * contact=contacts.get(key); System.out.println("value:"+contact); if* (contact != null) { System.out.println("firstname: " +* contact.getFirstName()); System.out.println(" lastname: " +* contact.getLastName()); System.out.println(" age: " +* contact.getAge()); }* * }*/// In case the Contact object is not available// Get a JSON representation of the contact// System.out.println("\nJSON representation");// cr.get(MediaType.APPLICATION_JSON).write(System.out);}
}
delete
package com.tht.client;
import com.tht.common.Address;
import com.tht.common.Contact;
import com.tht.common.ContactResource;
import java.io.IOException;import org.restlet.data.MediaType;import org.restlet.resource.ClientResource;
import org.restlet.resource.ResourceException;public class DeleteRequest {public static void main(String[] args) throws ResourceException,IOException {ClientResource cr = new ClientResource("http://localhost:8182/firstSteps/hello");// Get the Contact objectContactResource resource = cr.wrap(ContactResource.class);Contact contact = new Contact("firstName1", "lastName1", new Address("Address1", "Address2", "20010", "city1", "country1"), 10);resource.store(contact);}
}
put
package com.tht.client;
import com.tht.common.Address;
import com.tht.common.Contact;
import com.tht.common.ContactResource;
import java.io.IOException;import org.restlet.data.MediaType;import org.restlet.resource.ClientResource;
import org.restlet.resource.ResourceException;public class PutRequest {public static void main(String[] args) throws ResourceException,IOException {ClientResource cr = new ClientResource("http://localhost:8182/firstSteps/hello");// Get the Contact objectContactResource resource = cr.wrap(ContactResource.class);Contact contact = new Contact("firstName1", "lastName1", new Address("Address1", "Address2", "20010", "city1", "country1"), 10);resource.store(contact);}
}
这篇关于restlet-jse的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!