java - ReSTLet 的 GET POST DELETE 方法路由到同一函数

标签 java spring tomcat restlet

这个问题很奇怪,详情如下。

我在项目中使用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"/>

对于 SpringBeanRouterResources 必须是作用域原型(prototype),因为必须为每个请求创建一个新实例。

参见SpringBeanRouter APIrestlet-spring-example了解详情。

关于java - ReSTLet 的 GET POST DELETE 方法路由到同一函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32001519/

相关文章:

tomcat - 我可以在 servlet 映射中组合这些 url 模式吗?

java - 由 : org. usb4java.LoaderException : Native library not found in classpath:/org/usb4java/windows-x86/libusb-1. 0.dll 引起

java - 即使指定了列名也是错误的

JavaScript + Spring MVC - 如何从 Controller 发送的对象获取值?

java - 使用克隆和 Arrays.copyOf 时出现 byte[] 错误

spring - 默认情况下,Spring 的 DispatcherServlet 是否对 HttpSession 的超时有任何影响?

java - Wicket 应用程序可以在没有管理员密码的情况下触发自身重启吗?

Java Swing GridBagLayout() 跨越对象 3 行不起作用

java - 哪个语句(true 或 Boolean.TRUE)会更有效

Java:获取变量的最大值