【发布时间】:2011-12-30 11:19:48
【问题描述】:
我正在尝试将 REST API 添加到现有的 struts 2 应用程序。
这个想法是让应用程序的一部分使用标准的 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 操作正常工作”是什么意思?一点解释会有所帮助
-
抱歉,我的意思是其余操作总是返回 404 错误(GET 和 POST)或 403 错误(PUT 和 DELETE)。
-
我不确定 REST 是如何工作的,但您需要注意每个操作都应该定义命名空间。希望其他人可以调查一下
-
检查用户列表档案以将 REST 与“常规”操作相结合;我可以在周末玩这个,就像我做同样的事情一样,但现在不记得怎么玩了:(
-
我也在尝试,有没有成功。