使用component将Restlet服务当做单独的Java程序进行部署

来源:互联网 发布:cf提示网络异常 编辑:程序博客网 时间:2024/04/29 06:16

 使用component将Restlet服务当做单独的Java程序进行部署

  项目结构如下:


1、创建两个继承 ServerResource的类(FirstServerResource.java、SecondServerResource.java):

FirstServerResource.java:

[java] view plaincopy
  1. package test;  
  2.   
  3. import org.restlet.resource.Get;  
  4. import org.restlet.resource.ServerResource;  
  5.    
  6. //定义一个资源  
  7. public class FirstServerResource extends ServerResource {  
  8.        
  9.     @Get  
  10.     public String toString() {  
  11.         return "Hello World  !";  
  12.     }  
  13.        
  14. }  


SecondServerResource.java:

[java] view plaincopy
  1. package test;  
  2.   
  3. import org.restlet.resource.Get;  
  4. import org.restlet.resource.ServerResource;  
  5.    
  6. //定义一个资源  
  7. public class SecondServerResource extends ServerResource {  
  8.     
  9.     @Get  
  10.     public String toString() {  
  11.         return "two***!";  
  12.     }  
  13.        
  14. }  

2、创建两个继承 Application 的类(FirstServerApplication.java、SecondServerApplication.java):

     FirstServerApplication.java:

[java] view plaincopy
  1. package application;  
  2.   
  3. import org.restlet.Application;  
  4. import org.restlet.Restlet;  
  5. import org.restlet.routing.Router;  
  6.   
  7. import resource.FirstServerResource;  
  8.  //为资源配置路径  
  9. public class FirstServerApplication extends Application {  
  10.      
  11.     @Override  
  12.     public Restlet createInboundRoot() {  
  13.         Router router = new Router(this.getContext());  
  14.       //绑定资源路径到对应的处理资源类  
  15.         router.attach("/one", FirstServerResource.class);  
  16.         return router;  
  17.     }  
  18.        
  19. }  

SecondServerApplication.java:

[java] view plaincopy
  1. package application;  
  2.   
  3. import org.restlet.Application;  
  4. import org.restlet.Restlet;  
  5. import org.restlet.routing.Router;  
  6.   
  7. import resource.SecondServerResource;  
  8.  //为资源配置路径  
  9. public class SecondServerApplication extends Application {  
  10.      
  11.     @Override  
  12.     public Restlet createInboundRoot() {  
  13.         Router router = new Router(this.getContext());  
  14.       //绑定资源路径到对应的处理资源类  
  15.         router.attach("/two", SecondServerResource.class);  
  16.         return router;  
  17.     }  
  18.        
  19. }  

3、创建一个继承 Component 的类(MyComponent.java):

MyComponent.java:

[java] view plaincopy
  1. package component;  
  2.   
  3. import org.restlet.Component;  
  4.   
  5. import application.FirstServerApplication;  
  6. import application.SecondServerApplication;  
  7.   
  8. public class MyComponent extends Component{  
  9.       
  10.     /** 
  11.      * 重写createInboundRoot通过attach方法绑定资源类,并且制定了访问路径 
  12.      * */  
  13.     public MyComponent(){  
  14.         getDefaultHost().attach("/first"new FirstServerApplication());  
  15.         getDefaultHost().attach("/second"new SecondServerApplication());  
  16.     }  
  17. }  
4.编写启动服务类RestLetServer.java:

(1).

package server;import org.restlet.Component;import org.restlet.data.Protocol;import component.MyComponent;public class RestletServer {/** * 将Restlet服务当做单独的Java程序进行部署 */public static void main(String[] args) throws Exception {Component component = new MyComponent();component.getServers().add(Protocol.HTTP, 8080);component.start();System.out.println("WebServer服务启动成功!开启端口号为:8080");}}

上面的这种写法用到了自定义的component即MyComopent.java,如果不使用MyComopent.java配置,可以这样写:

(2).

package server;import org.restlet.Component;import org.restlet.data.Protocol;import application.FirstServerApplication;public class RestletServer {/** * 将Restlet服务当做单独的Java程序进行部署 */public static void main(String[] args) throws Exception { Component component = new Component(); component.getServers().add(Protocol.HTTP, 8080);component.getDefaultHost().attach("/testRestLet01-3/first",new FirstServerApplication());component.getDefaultHost().attach("/testRestLet01-3/second",new FirstServerApplication());System.out.println("WebServer服务启动成功!开启端口号为:8080");}}

5.启动RestletServer.java程序,即将Restlet服务当做单独的Java程序进行部署,然后通过浏览器访问:

如果用的是4.(1)中的写法,访问地址如下:http://localhost:8182/first、http://localhost:8182/second

如果用的是4.(2)中的写法,访问地址如下:http://localhost:8182/testRestLet01-2/first、http://localhost:8182/testRestLet01-2/second








原创粉丝点击