java - 无法在 Spring 中 Autowiring RequestMappingHandleMapping

标签 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/>到我的 spring 配置,我目前没有。

但是,当我添加该行时,出现以下错误:

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 配置文件的 header 。

<?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 无法 Autowiring RequestMappingHandlerMapping 的任何实例的另一个原因吗?进入我的项目?如果有帮助的话,我很乐意发布有关我的配置的更多详细信息。

最佳答案

You appear to be using an older version of Spring framework - can you please confirm that you are using Spring 3.2+ – Biju Kunjummen yesterday

这条评论包含了答案。我犯了一个愚蠢的错误,非常感谢 Biju 的帮助。

关于java - 无法在 Spring 中 Autowiring RequestMappingHandleMapping,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24637626/

相关文章:

java - 如何在 spring 中注入(inject)对象的默认版本

具有元素超时的 Java Collection 实现

java - 如何在不使用Eclipse的情况下在spring和maven中运行Hello World程序

java - 如何优先使用相同id的spring bean?

spring - 将 Spring Data Rest 存储库注入(inject)实用程序类

java - Spring Boot 类路径

java - jsp页面无法加载图片

java - Collat​​or 比较字符串很奇怪

java - Java中过滤ASCII流

java - Angular 应用程序从 tomcat 应用程序获取错误