使用@RequestMapping注释的Restlet不起作用

时间:2014-06-15 09:56:03

标签: java spring annotations restlet

我的应用程序中有一些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 {
  ...
}

这工作正常......只有多个路径映射会导致问题。

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

从我看到的,我们不支持从Spring框架中获取注释。

如果要删除任何xml配置,可以采用以下两种方式: