DispatcherServlet不将我的请求转发给控制器

时间:2014-02-16 17:21:45

标签: java spring spring-mvc jboss

我使用spring框架编写Web服务应用程序。应用程序中没有html或jsp页面。它纯粹是Web服务。
 这是我的控制器类

@RequestMapping("/*")
public class Opinion {


    private FeedbackService fs;

    public Opinion(FeedbackService fs){


        this.fs=fs;
    }


    @RequestMapping(value="/givefeedback",method=RequestMethod.POST)
    public void Login(HttpServletRequest request,HttpServletResponse response) throws IOException, ClassNotFoundException
    {
        ObjectInputStream in=new ObjectInputStream(request.getInputStream());
        serialize.Feedback feedback=(serialize.Feedback)in.readObject();
        fs.writeFeedback(feedback);
        response.setStatus(200);


    }

我的mvc-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
                            http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
                            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
                            http://www.springframework.org/schema/tx
                            http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

    <bean id="poll_Web" class="sef.controller.Opinion">
        <constructor-arg ref="feedbackService" />
        </bean>

    <context:component-scan base-package="sef.controller" />



</beans>

我的web.xml

<servlet>
        <servlet-name>opinionDispacher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value> classpath:repository-config.xml /WEB-INF/mvc-config.xml 
            </param-value>
        </init-param>
    </servlet>

    <servlet-mapping>
        <servlet-name>opinionDispacher</servlet-name>  
        <url-pattern>/</url-pattern>
    </servlet-mapping>

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value> classpath:repository-config.xml /WEB-INF/mvc-config.xml 
        </param-value>
    </context-param>

我正在使用网址localhost:8080/feedback/givefeedback。该应用程序部署为 feedback.war 。但请求根本没有转发给控制器。我不确定为什么会这样。我也不确定请求进入链中的哪一点。

2 个答案:

答案 0 :(得分:1)

你错过了

<mvc:annotation-driven/>
来自servlet上下文配置的

。该元素将发现@Controller bean及其@RequestMapping方法,并将它们注册为处理程序。

您需要为该命名空间添加适当的XML命名空间和架构位置。


Opinion设为@Controller并删除

@RequestMapping("/*")

它实际上并没有任何用途。

答案 1 :(得分:1)

您还在Opinion中两次定义了mvc-config.xml bean。删除bean id poll_Web的bean定义。