一、实体
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; } @Override public 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. */ @Override public 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 route router.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 implements ContactResource { public ContactServerResource(){ } private static Contact contact = new Contact("firstName1", "lastName1", new Address("Address1", "Address2", "20010", "city1", "country1"), 10); @Override public void remove(String key) { contact=null; } @Override public Contact retrieve() { return contact; } @Override public 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 object ContactResource 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 object ContactResource 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 object ContactResource resource = cr.wrap(ContactResource.class); Contact contact = new Contact("firstName1", "lastName1", new Address("Address1", "Address2", "20010", "city1", "country1"), 10); resource.store(contact); } }