我想用Restlet開發REST服務。我有一個擴展了org.restlet.Application類的類,還有一個擴展了org.restlet.resource.ServerResource類的類。開發和部署Restlet服務
第一類有一個方法:
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類的類。最後我不知道到底是什麼URL調用「你好」:http://myDomain:myPort/myServices/hello?name=MyName
?????
預先感謝
UPDATE
更新我的應用程序:我改變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字符串作爲參數。但是,如果用Reslet開發簡單的HelloWorld非常困難,也許我會嘗試使用RestEasy。
:__(
我想要很多方法進入Services類。那麼,我需要在哪裏添加'router.attach(「/ myServices/otherMethod1」)'?在ServicesApplication類中,它是真的嗎?你可以向我解釋一下,如果使用'router.attach(「/ myServices」,Services。類);'我只打電話給'hello'方法? – jjmartinez
感謝您的迴應和示例。我認爲Restlet更容易使用Jersey或RestEasy:( – jjmartinez
去年夏天我和Restlet一起工作過,我唯一記得的就是我恨它!!!:p而且澤西更容易。 [這個鏈接](http://stackoverflow.com/questions/7608694/multiple-get-methods-in-single-resource-class-with-restlet)可以幫到你。 – Sergi