使用component将Restlet服务当做单独的Java程序进行部署
项目结构如下:
1、创建两个继承 ServerResource的类(FirstServerResource.java、SecondServerResource.java):
FirstServerResource.java:
- package test;
- import org.restlet.resource.Get;
- import org.restlet.resource.ServerResource;
- //定义一个资源
- public class FirstServerResource extends ServerResource {
- @Get
- public String toString() {
- return "Hello World !";
- }
- }
SecondServerResource.java:
- package test;
- import org.restlet.resource.Get;
- import org.restlet.resource.ServerResource;
- //定义一个资源
- public class SecondServerResource extends ServerResource {
- @Get
- public String toString() {
- return "two***!";
- }
- }
2、创建两个继承 Application 的类(FirstServerApplication.java、SecondServerApplication.java):
FirstServerApplication.java:
- package application;
- import org.restlet.Application;
- import org.restlet.Restlet;
- import org.restlet.routing.Router;
- import resource.FirstServerResource;
- //为资源配置路径
- public class FirstServerApplication extends Application {
- @Override
- public Restlet createInboundRoot() {
- Router router = new Router(this.getContext());
- //绑定资源路径到对应的处理资源类
- router.attach("/one", FirstServerResource.class);
- return router;
- }
- }
SecondServerApplication.java:
- package application;
- import org.restlet.Application;
- import org.restlet.Restlet;
- import org.restlet.routing.Router;
- import resource.SecondServerResource;
- //为资源配置路径
- public class SecondServerApplication extends Application {
- @Override
- public Restlet createInboundRoot() {
- Router router = new Router(this.getContext());
- //绑定资源路径到对应的处理资源类
- router.attach("/two", SecondServerResource.class);
- return router;
- }
- }
3、创建一个继承 Component 的类(MyComponent.java):
MyComponent.java:
- package component;
- import org.restlet.Component;
- import application.FirstServerApplication;
- import application.SecondServerApplication;
- public class MyComponent extends Component{
- /**
- * 重写createInboundRoot通过attach方法绑定资源类,并且制定了访问路径
- * */
- public MyComponent(){
- getDefaultHost().attach("/first", new FirstServerApplication());
- getDefaultHost().attach("/second", new SecondServerApplication());
- }
- }
(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