我想用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);
}
}
当然,Hello
是Services
类的抽象方法。
此外,我在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。
:__(
答案 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。