gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 08:09:55 25 4
gpt4 key购买 nike

这个问题很奇怪,具体如下。

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com