我的应用程序中有一些ServerResources由@Service(name)
注释标识。这些方法使用@Get
和@Post
restlet注释进行注释。
一切正常,直到最近我想添加另一个ServerResource,它必须提供具有不同参数和请求方法的URL模式,因此我尝试对方法使用@RequestMapping
注释,如:
@Service
public class MyResource extends ServerResource {
@RequestMapping(value="/pathToMyResource/{parameter1}", method=RequestMethod.GET)
public Representation getResponseForGetRequest(Representation entity) {
...
}
//and for the other method:
@RequestMapping(value="/pathToMyResource/{parameter1}/{parameter2}", method=RequestMethod.POST)
public Representation getResponseForPostRequest(Representation entity) {
...
}
...
}
但是我的资源未正确注册org.restlet.ext.spring.SpringBeanRouter
,因为在请求此URL时未找到该资源。
我找出适用于一种资源的多条路径的唯一方法是通过XML配置:
<bean name="/pathToMyResource/{parameter1}"
id="myGetResource"
class="com.mycompany.resource.MyResource"
autowire="byName" scope="prototype">
</bean>
<bean name="/pathToMyResource/{parameter1}/{parameter2}"
id="myPostResource"
class="com.mycompany.resource.MyResource"
autowire="byName" scope="prototype">
</bean>
并使用Restlet注释方法:
public class MyResource extends ServerResource {
@Get
public Representation getResponseForGetRequest(Representation entity) {
...
}
//and for the other method:
@Post
public Representation getResponseForPostRequest(Representation entity) {
...
}
...
}
您知道@RequestMapping
注释如何与Restlet一起使用吗?我想完全避免XML配置,并试图找到一种方法来使用注释...
正如我所提到的,我只对映射到一条路径的资源没有问题,如:
@Service("/pathToMyResource/{parameter1}")
public class MyResource extends ServerResource {
...
}
这工作正常......只有多个路径映射会导致问题。
感谢您的帮助!
答案 0 :(得分:2)
如果要删除任何xml配置,可以采用以下两种方式: