在Spring MVC中找不到线程绑定请求

时间:2013-07-09 14:14:12

标签: servlets spring-mvc

我正在使用Spring mvc构建应用程序,我正在尝试从DispatcherServlet范围之外的bean访问http请求。我读了类似的帖子,发现我需要添加RequestContextListener。但是我一直得到同样的错误。你可以看到控制器和我注入控制器的bean:

@Controller
public class ChargeController {

    // Injected bean
    @Autowired
    public StripeCharger stripeCharger;

    @RequestMapping(value = "/stripecharge", method = RequestMethod.POST)
    public String chargeStripe(ModelMap model) {

        // user`s custom code           
        String response = stripeCharger.charge();



     }
}

web.xml的一部分

 <listener>
    <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
 </listener>  

注入的豆

package com.controller;

import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

import com.stripe.Stripe;
import com.stripe.exception.StripeException;
import com.stripe.model.Charge;


public class StripeCharger {

    public String token; 

    public StripeCharger()
    {
        HttpServletRequest curRequest = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest();  
        this.token = curRequest.getParameter("stripeToken");
    }       

}

-servlet.xml

<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:context="http://www.springframework.org/schema/context"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:mvc="http://www.springframework.org/schema/mvc"
   xmlns:aop="http://www.springframework.org/schema/aop"
   xsi:schemaLocation="
   http://www.springframework.org/schema/beans     
   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
   http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd               
   http://www.springframework.org/schema/context
   http://www.springframework.org/schema/context/spring-context-3.0.xsd
   http://www.springframework.org/schema/aop
   http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">

  <mvc:default-servlet-handler />
   <mvc:annotation-driven />
   <context:component-scan base-package="com.controller" />


   <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
      <property name="prefix" value="/WEB-INF/jsp/" />
      <property name="suffix" value=".jsp" /> 
   </bean>

   <!-- This bean is auto-generated -->
   <!-- define the bean to inject the Stripe charger -->
   <bean id="StripeCharger" class="com.controller.StripeCharger" scope="request">
        <aop:scoped-proxy/>
   </bean>

</beans>

任何人都可以帮我解决这个问题?谢谢

0 个答案:

没有答案