1 2 3 4 5 6 7 8 | 1. package edu.ucar.cisl.gwtRESTTutorialView.client; 2. import com.google.gwt.user.client.rpc.AsyncCallback; 3. public interface RESTfulWebServiceProxyAsync { 4. public void invokeGetRESTfulWebService (String uri, String contentType, AsyncCallback<String> callback); 5. } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | 1. package edu.ucar.cisl.gwtRESTTutorialView.server; 2. import java.io.BufferedReader; 3. import java.io.IOException; 4. import java.io.InputStream; 5. import java.io.InputStreamReader; 6. import java.net.HttpURLConnection; 7. import java.net.MalformedURLException; 8. import java.net.URL; 9. import com.google.gwt.user.server.rpc.RemoteServiceServlet; 10. import edu.ucar.cisl.gwtRESTTutorialView.client.RESTfulWebServiceProxy; 11. import edu.ucar.cisl.gwtRESTTutorialView.client.RESTfulWebServiceException; 12. public class RESTfulWebServiceProxyImpl extends RemoteServiceServlet 13. implements RESTfulWebServiceProxy { 14. private static final long serialVersionUID = 1L; 15. public RESTfulWebServiceProxyImpl() { // must have 16. } 17. public String invokeGetRESTfulWebService(String uri, String contentType) 18. throws RESTfulWebServiceException { 19. try { 20. URL u = new URL(uri); 21. HttpURLConnection uc = (HttpURLConnection) u.openConnection(); 22. uc.setRequestProperty("Content-Type", contentType); 23. uc.setRequestMethod("GET"); 24. uc.setDoOutput(false); 25. int status = uc.getResponseCode(); 26. if (status != 200) 27. throw (new RESTfulWebServiceException("Invalid HTTP response status 28. code " + status + " from web service server.")); 29. InputStream in = uc.getInputStream(); 30. BufferedReader d = new BufferedReader(new InputStreamReader(in)); 31. String buffer = d.readLine(); 32. return buffer; 33. } 34. catch (MalformedURLException e) { 35. throw new RESTfulWebServiceException(e.getMessage(), e); 36. } 37. catch (IOException e) { 38. throw new RESTfulWebServiceException(e.getMessage(), e); 39. } 40. } 41. } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | 1. package edu.ucar.cisl.gwtRESTTutorialView.client.callback; 2. import com.google.gwt.user.client.rpc.AsyncCallback; 3. import com.google.gwt.user.client.ui.TreeItem; 4. import com.google.gwt.user.client.Window; 5. public abstract class RestServiceRpcCallback implements AsyncCallback <String> { 6. TreeItem treeItem; 7. public enum EventType {SELECT_EVENT, STATE_CHANGE_EVENT}; 8. protected EventType eventType; 9. public EventType getEventType() { 10. return eventType; 11. } 12. public void setEventType(EventType eventType) { 13. this.eventType = eventType; 14. } 15. public TreeItem getTreeItem() { 16. return treeItem;} 17. public void setTreeItem(TreeItem treeItem) { 18. this.treeItem = treeItem; 19. } 20. public void onSuccess(String result) { 21. if (result == null) 22. return; 23. processResponse(result); 24. } 25. public void onFailure(Throwable caught) { 26. String msg=caught.getMessage(); 27. if (msg != null) 28. Window.alert(msg); 29. } 30. protected abstract void processResponse(String response); 31. } |
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |