Restlet 的 GET POST DELETE 方法路由到同一个函数
Restlet's GET POST DELETE method route to the same function
这个问题很strange.Details如下
我在一个项目中使用restlet和spring/tomcat来提供REST服务。但在某些情况下,所有 HTTP 方法(POST/DELETE/GET)请求都进入同一个函数,例如 @Get
例程,有时所有方法请求都进入 @Post
例程。每次重启 tomcat 时情况都不一样。有时所有方法都有效。
这是我的配置:
web.xml
<servlet>
<servlet-name>restlet</servlet-name>
<servlet-class>org.restlet.ext.spring.SpringServerServlet</servlet-class>
<init-param>
<param-name>org.restlet.component</param-name>
<param-value>component</param-value>
</init-param>
</servlet>
applicationContext.xml
<bean id="component" class="org.restlet.ext.spring.SpringComponent">
<property name="defaultTarget" ref="restRouter" />
</bean>
<bean id="restRouter" class="org.restlet.ext.spring.SpringBeanRouter"></bean>
<bean name="/v1.0/{tenant}/templates/{id}" id="one" class="com.XXX.TemplateResource"/>
TemplateResource 扩展了 ServerResource
@Get
@Override
public Representation get(){
// some code
}
我认为配置还可以,有时一切正常。
那么eclipe或tomcat之类的其他东西有问题吗?
谢谢。
在你的applicationContext.xml
<bean name="/v1.0/{tenant}/templates/{id}" id="one" class="com.XXX.TemplateResource"/>
对于 SpringBeanRouter
,Resources
必须是作用域原型,因为必须为每个请求创建一个新实例。
这个问题很strange.Details如下
我在一个项目中使用restlet和spring/tomcat来提供REST服务。但在某些情况下,所有 HTTP 方法(POST/DELETE/GET)请求都进入同一个函数,例如 @Get
例程,有时所有方法请求都进入 @Post
例程。每次重启 tomcat 时情况都不一样。有时所有方法都有效。
这是我的配置:
web.xml
<servlet>
<servlet-name>restlet</servlet-name>
<servlet-class>org.restlet.ext.spring.SpringServerServlet</servlet-class>
<init-param>
<param-name>org.restlet.component</param-name>
<param-value>component</param-value>
</init-param>
</servlet>
applicationContext.xml
<bean id="component" class="org.restlet.ext.spring.SpringComponent">
<property name="defaultTarget" ref="restRouter" />
</bean>
<bean id="restRouter" class="org.restlet.ext.spring.SpringBeanRouter"></bean>
<bean name="/v1.0/{tenant}/templates/{id}" id="one" class="com.XXX.TemplateResource"/>
TemplateResource 扩展了 ServerResource
@Get
@Override
public Representation get(){
// some code
}
我认为配置还可以,有时一切正常。 那么eclipe或tomcat之类的其他东西有问题吗? 谢谢。
在你的applicationContext.xml
<bean name="/v1.0/{tenant}/templates/{id}" id="one" class="com.XXX.TemplateResource"/>
对于 SpringBeanRouter
,Resources
必须是作用域原型,因为必须为每个请求创建一个新实例。