swagger-ui Kein mapping gefunden für HTTP-Anforderung
Ich versuche zu dokumentieren und vorhandene Rest-API ein Spring-MVC-Projekt (NICHT spring boot!).
Meine Anwendung heißt api so http://localhost:9090/api wäre die root-Endpunkt. Da bin ich mit spring-data-rest, auf dass die URL sehen kann ich die json-alle meine ausgesetzt repositories. So weit So gut.
Kann ich auch zugreifen, die swagger JSON http://localhost:9090/api/v2/api-docs
Das problem
Habe ich keinen Zugriff auf die swagger-UI-Komponente auf http://localhost:9090/api/swagger-ui.html . Es gibt mir
WARN org.springframework.web.servlet.PageNotFound- No mapping found for HTTP request with URI [/api/swagger-ui.html] in DispatcherServlet with name 'dispatcher'
Überprüfung der Frühling meldet beim starten von tomcat kann ich sehen etwas komisch
DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory- Finished creating instance of bean 'swaggerApiListingReader'
DEBUG org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping- Rejected bean name 'swaggerConfig': no URL paths identified
DEBUG org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping- Rejected bean name 'swagger2Controller': no URL paths identified
DEBUG org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping- Rejected bean name 'swaggerMediaTypeReader': no URL paths identified
DEBUG org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping- Rejected bean name 'swaggerOperationModelsProvider': no URL paths identified
DEBUG org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping- Rejected bean name 'swaggerOperationResponseClassReader': no URL paths identified
DEBUG org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping- Rejected bean name 'swaggerOperationTagsReader': no URL paths identified
DEBUG org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping- Rejected bean name 'swaggerResponseMessageReader': no URL paths identified
DEBUG org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping- Rejected bean name 'swaggerParameterDescriptionReader': no URL paths identified
DEBUG org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping- Rejected bean name 'swaggerExpandedParameterBuilder': no URL paths identified
DEBUG org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping- Rejected bean name 'swaggerApiListingReader': no URL paths identified
DEBUG org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping- Rejected bean name 'swaggerProperties': no URL paths identified
DEBUG org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping- Rejected bean name 'springfox.documentation.swagger.configuration.SwaggerCommonConfiguration': no URL paths identified
DEBUG org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping- Rejected bean name 'springfox.documentation.swagger2.configuration.Swagger2DocumentationConfiguration': no URL paths identified
DEBUG org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping- Rejected bean name 'swagger2Module': no URL paths identified
Scheint, um anzugeben, die für einige Grund swaggerController nicht verbunden sind, zu allen URLs, daher der 404-Fehler.
Diese sind die version, die ich arbeite mit
<spring.version>4.2.8.RELEASE</spring.version>
<spring-data.version>Gosling-SR4</spring-data.version>
<spring-data-rest>2.4.6.RELEASE</spring-data-rest>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-data-rest</artifactId>
<version>2.6.1</version>
</dependency>
Dies ist mein Java conf. Darauf hinzuweisen, dass die Methode addResourceHandlers NIE ausgeführt
@Configuration
@EnableSwagger2
@EnableWebMvc
@Import({springfox.documentation.spring.data.rest.configuration.SpringDataRestConfiguration.class})
public class SwaggerConfig extends WebMvcConfigurerAdapter {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build();
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
System.out.println("******************************Configuring swagger resource handler");
registry.addResourceHandler("swagger-ui.html")
.addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
}
}
Irgendwelche Vorschläge? In kurzen, swagger-ui funktioniert nicht.
InformationsquelleAutor felipe | 2017-04-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese Lösung ist mit freundlicher Genehmigung diese Antwort von @oksett
Erstellen Sie eine configuration-Klasse, die sich
WebMvcConfigurerAdapter
und überschreiben der folgenden Methoden:Wenn Mit Feder 5, statt und erstreckt sich
WebMvcConfigurerAdapter
implementiertWebMvcConfigurer
In Ihrem Fall müssen Sie hinzufügen und Implementierung von
addViewControllers
zuSwaggerConfig
. Beachten Sie auch die änderungen in deraddResourceHandlers
Methode voranstellen/api
um die Rettung handler Lage.Sollten Sie nun in der Lage sein, um den Zugang in meine swagger-ui.html @
http://localhost:9090/api/swagger-ui.html
Das erste, was ich brauche, um sicherzustellen, dass die Konfiguration wird ausgeführt, wenn das laden. Sowohl addViewControllers und addResourceHandlers niemals ausgeführt, was ich glaube ist die Ursache....
Its a spring mvc-Lösung boot ist ein super set. Zweitens über die abgelehnte bean, message, es ist eine debug-Meldung, so dass es eine red-herring Sie jagen. Wenn es signifikante würden Sie nichts sehen in der
/v2/apidocs
Endpunkt, weil eine der Bohnen abgelehnt wirdswagger2Controller
. Eine andere Sache zu versuchen ist, entfernen Sie das @ - EnableWebMvc.habe Sie neu spring boot-und ja, es ist die DEBUG-also sollte es egal sein. Was ist die bit-Konfiguration in Spring, Trigger addViewControllers und * addResourceHandlers* ? Das ist noch nicht passiert, weder mit meinem Beispiel oder mit Ihrem Vorschlag.
stackoverflow.com/a/30915922
InformationsquelleAutor Dilip Krishnan
Folgende ist eine komplette code, wie zu konfigurieren, spring boot mit swagger doc und arbeiten-UI.
pom.xml
SwaggerDocConfig.java
InformationsquelleAutor biniam
Landeten wir bereitstellen Swagger-UI-client getrennt und ihm zu dienen durch Nginx. Wir konnten nicht herausfinden, was falsch mit es und basierend auf umfangreichen Recherchen gefunden, dass viele andere mit denselben Schwierigkeiten, so dass wir beschlossen, zu stoppen, Zeit zu verbringen zu versuchen, den embedded-Ansatz.
InformationsquelleAutor felipe
Hatte ein ähnliches problem vor einer Weile. Ich fand heraus, es war verursacht durch
@EnableWebMvc
Anmerkung in meine eigene Exception-Handler.Entfernen
@EnableWebMvc
hat den trick für mich!!!!!InformationsquelleAutor Salah Eddine El Ouali
Hatte ein ähnliches problem und Dilips anwser gearbeitet.
Um genauer zu sein:
Mein api-docs Lage fein gearbeitet
Meine swagger-ui.html war das Rendern aber nichts angezeigt. In der browser-Konsole konnte ich sehen, 404 für " /configuration/ui-dir.
den richtigen dir war /swagger-Ressourcen/Konfiguration/Benutzeroberfläche, so hatte ich zu tun, eine Umleitung:
InformationsquelleAutor Marcin