採用spring3.0和restlet2.0.6,通過乙個叫做restletservlet的servlet與spring整合,如下:
restletservlet
org.restlet.ext.spring.restletframeworkservlet
org.restlet.component
restletcomponent
要注意的是,如果直接使用restlet,則只要org.restlet.jar,如果需要與spring整合,則需要一系列org.restlet.ext.*.jar的配合。上述配置涉及到乙個初始化引數(org.restlet.component),其值要求是乙個bean,該bean預設配置到restletservlet-servlet.xml檔案中,配置如下:
此處又涉及到乙個叫做root的bean,該bean表示rest結構的path配置的根節點,在這個節點中,允許使用者配置多個自己的路由位址,例子如下:
上面這個配置中,乙個entry代表乙個路徑對映關係,key表示路徑,裡面的bean是路徑對應的處理類,lookup-method name="create"暫時不清楚其作用。bean的定義如下所示,它依然允許注入其他的bean,路徑對應的處理方法通過在bean中的@get註解來指定
注意:
1、此處的bean都需要配置為原型模式:scope="prototype" bean的定義需繼承自serverresource,如下:public class dtsresourceupdate extends serverresource
2、如果servlet攔截的url匹配規則為/rest/*,root這邊配置的是/newtest,則真正的訪問位址應該為/rest/newtest,也就是說map這邊的配置,是攔截後剩餘的位址
3.2.1 路徑對映如何傳值
在path路徑中,通過大括號來指明形參名和引數值,如/update/defect/101,效果等價於在url中帶入引數:http://..../defect?number=101引數的獲取方式如下:
@get
public string updateinfo(){
string number = (string)
getrequestattributes().get("number");
restlet通常當做輕量級的webservice使用,那如何返回較大的資料量呢?此處以xml為例:
return new stringrepresentation(getxmlissuedtsmanager().getissuedtsfromxml());
其中,getissuedtsfromxml()如下:
string xmlresult = "";
saxbuilder builder=new saxbuilder();
try {
document docment = builder.build(this.getclass().getresource("/").getpath()+file.separator+getdtsxmlfilename()+".xml");
format format = format.getprettyformat();
format.setindent(" ");
format.setencoding("gb2312");
xmloutputter xmlout = new xmloutputter();
xmlout.setformat(format);
xmlresult = xmlout.outputstring(docment);
......
return xmlresult;
3.4.1 如何讓乙個serverresource處理類的每個方法對應乙個path?
目前通過@get註解,肯定無法區分方法與path的對應關係。如果乙個類只能有乙個方法對應乙個path,那path較多的情況下,會導致處理類膨脹
3.4.2 根節點(springrouter)的配置是否有其他方式?
3.4.3 預設使用restletservlet-servlet.xml作為配置檔案的名稱,如何自定義?
3.4.4 為什麼serverresource處理類的bean都要配置為scope="prototype"
Restlet 2 2中Restlet類的分析
org.restlet.restlet 有三個重要的方法 一 firecontextchanged restlet restlet,context context 這個方法是在乙個restlet 使用建構函式 restlet context context 以及呼叫 setcontext 方法的時候...
spring 整合Junit,整合web
l 匯入jar包 基本 4 1 測試 spring test.jar 1.讓junit通知spring載入配置檔案 2.讓spring容器自動進行注入 l 修改測試類 package com.hcx import org.junit.test import org.junit.runner.runw...
Spring 整合測試
spring 中的包 spring mock.jar 為整合測試提供了一流的支援。所有相關的api在包 org.springframework.test 中,它們不依賴於任何應用伺服器或者其他部署環境。test包裡的各種抽象類提供了如下的功能 test包對載入的context提供快取,快取功能是通過...