开发和部署Restlet服务

时间:2013-12-20 07:59:32

标签: java restlet

我想用Restlet开发REST服务。我有一个扩展org.restlet.Application类的类,以及扩展org.restlet.resource.ServerResource类的其他类。

第一堂课有一个方法:

public class ServicesApplication extends Application {      
    public 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("/myServices", Services.class);

        return router;

    }
}

第二个类有不同的服务方法,例如HelloWorld:

public class Services extends ServerResource{
    @Get ("hello")
    public void Hello(String name){
        System.out.println("Hello "+name);
    }
}

问题在于我不知道如何在Tomcat中部署我的服务,我是否需要生成.war并存储在Tomcat的webapps文件夹中?而且我不知道在实现ServerResource的类中我是否需要调用实现到Application类的类。最后,我不知道究竟要拨打的网址是什么?#34; Hello":http://myDomain:myPort/myServices/hello?name=MyName ????

提前感谢

更新

我更新了我的应用:我更改了ServicesApplication,现在它是一个抽象类。我还添加了其他扩展到ServicesApplication类的类:

    public class HelloWorldService extends Services {

    public String Hello(String name){
        System.out.println("Hello "+name);
        return("Hello"+name);
    }
}

当然,HelloServices类的抽象方法。

此外,我在ServicesApplication添加了这一行:

router.attach("/helloWorld/{name}", HelloWorldService.class);

我从导航器中调用此方法:

http://localhost:8080/myServices/service/helloWorld/Jesus

这是回复:

Hello null

我如何调用方法???

我只想做Hello +name。当我有这个时,我想开发一些GET和POST方法,以JSON String作为参数。但如果用 Reslet 开发一个简单的HelloWorld非常困难,也许我会尝试使用RestEasy。

:__(

2 个答案:

答案 0 :(得分:1)

此页面here应该让您开始并提供一些想法。

答案 1 :(得分:1)

将项目导出为 .war文件并将其部署到您的服务器上。那么您的路径将是http://localhost:port/Project_Name/myServices。如果要传递参数,则必须添加router.attach("/myServices/{name}", Services.class);。你可以写http://localhost:port/Project_Name/myServices/myName

看看this example