3
我正在嘗試將REST API添加到現有的struts 2應用程序中。使用Struts的REST API
這個想法是讓部分應用程序使用標準的struts映射,另一部分使用REST。
因此,我使用的struts2-rest-plugin插件,並且增加了以下配置:
struts.xml中:
<constant name="rest" value="org.apache.struts2.rest.RestActionMapper"/>
<constant name="struts.mapper.class"
value="org.apache.struts2.dispatcher.mapper.PrefixBasedActionMapper"/>
<constant name="struts.mapper.prefixMapping" value="/rest:rest,/:struts"/>
struts.properties:
struts.action.extension=,htm,action,xml,json
TasksController。 java:
package xxx.common.webservice.rest;
public class TasksController implements ModelDriven<Task> {
public String update() {
return "UPDATE";
}
// Handles /tasks/{id} GET requests
public String show() {
return "YES";
}
@Override
public Task getModel() {
// TODO Auto-generated method stub
return null;
}
}
有了這個配置,基本的struts動作就可以工作了,但是我無法讓REST動作起作用。 我也嘗試了不同的struts.xml配置(包括約定插件選項),但沒有任何成功,映射從未顯示與config-brower plugin。
任何想法,我已經錯過了或做錯了?
你所說的 「不能讓REST行動工作」 是什麼意思?有點解釋會幫助 – 2011-12-30 11:22:20
對不起,我的意思是其餘的動作總是返回404錯誤(GET和POST)或403錯誤(PUT和DELETE)。 – nicompte 2011-12-30 11:28:36
我不確定REST是如何工作的,但你需要小心每個動作都應該有名稱空間的定義。希望其他人可以看看這個 – 2011-12-30 11:53:07