无法在Spring中自动装配RequestMappingHandleMapping

时间:2014-07-08 17:00:57

标签: java spring spring-mvc swagger

我正在尝试在使用Spring MVC框架创建的REST API上启用Swagger。我正在尝试使用swagger-springmvc为它自动生成json,并且遇到了问题。根本原因似乎是swagger-springmvc项目期望找到一个在Spring中注册的RequestMappingHandlerMapping实例,但该bean不存在。启动服务器时,我遇到此错误:

No matching bean of type [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping]

我在项目论坛上找到了a relevant thread。与我相关的唯一建议是将<mvc:default-servlet-handler/>添加到我目前没有的弹簧配置中。

然而,当我添加该行时,我收到以下错误:

org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'mvc:default-servlet-handler'.

我知道这通常是由于架构位置定义存在问题,但这似乎并非如此。我在mvc前缀中使用了其他几个标签,因此我认为这个标签失败是不对的。这是我的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:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
                    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                    http://www.springframework.org/schema/context
                    http://www.springframework.org/schema/context/spring-context-3.0.xsd
                    http://www.springframework.org/schema/mvc
                    http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
    <mvc:annotation-driven/>

    <context:component-scan base-package="us.co.state.judicial.icces.webservices.rest" />

    <mvc:default-servlet-handler/>

    <bean name="serverUtil" class="us.co.state.judicial.icces.webservices.util.WebServerUtil" />

    <bean name="swaggerConfig" class="us.co.state.judicial.icces.webservices.config.SwaggerConfig" />

    ...(some extra beans to define internally accessible services chopped off)
</beans>

所以我想,最终,我的问题分为两部分: 1)有谁知道为什么<mvc:default-servlet-handler/>不适合我,或者有没有人知道为什么Swagger无法将RequestMappingHandlerMapping的任何实例自动装入我的项目?如果有帮助,我很乐意发布有关我的配置的更多详细信息。

1 个答案:

答案 0 :(得分:1)

  

您似乎使用的是旧版本的Spring框架 - 请您确认您使用的是Spring 3.2+ - 昨天的Biju Kunjummen

此评论包含答案。我的愚蠢错误,非常感谢Biju的帮助。