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