2014-11-25 8 views
7

Meine Konfiguration ist wie folgt:Wie Swagger UI aktivieren? Tomcat, SpringMVC, REST

pom.xml

<dependencies> 
     <!-- Swagger --> 
     <dependency> 
      <groupId>com.mangofactory</groupId> 
      <artifactId>swagger-springmvc</artifactId> 
      <version>0.9.1</version> 
     </dependency> 

     <!-- Swagger WebJar --> 
     <dependency> 
      <groupId>org.webjars</groupId> 
      <artifactId>swagger-ui</artifactId> 
      <version>2.0.24</version> 
     </dependency> 
</dependencies> 

Wurzel context.xml

<mvc:annotation-driven/> 
<beans:bean class="com.mangofactory.swagger.configuration.SpringSwaggerConfig" /> 

ich in Tomcat 8.0 meine Anwendung bereitstellen. Ich bin in der Lage, Swagger JSON-Daten an URI zu sehen:

Aber ich kann Swagger UI nicht ausführen. Was sollte ich noch tun, um Swagger UI in meinem Projekt zu betreiben?

+0

Haben Sie den Kontextstamm Ihrer Anwendung ausprobiert? ttp: // localhost: 8080/myap? oder ttp: // localhost: 8080/myapp/index.html? – Ron

+0

Ich habe eine Demo implementiert, aber ich habe kein Webjar verwendet (ich habe UI-Ressourcen kopiert). Sie können es hier überprüfen: https://github.com/jxc876/boot-swagger-demo Hoffe es hilft. –

+0

Unter 'src \ main \ webapp \ WEB-INF' habe ich Spring Web Anwendung mit' web.xml' Konfigurationsdatei. Ich habe swagger-ui Ressourcen in 'src \ main \ webapp \ docs' gesetzt. Was muss ich zu web.xml hinzufügen, um auch diesen Inhalt zu liefern? Unter 'http: // localhost: 8080/myapp/'habe ich meine Web App. Ich weiß nicht, wo ist Swagger UI – dmydlarz

Antwort

1

löste ich mein Problem durch Prahlerei-ui Ressourcen

src\main\webapp\docs 

Ich habe auch

<mvc:default-servlet-handler/> 

Zugabe pom.xml

Jetzt kann ich auf Prahlerei UI unter:

http://localhost:8080/myapp/docs/ 
+0

Wenn ich die Dateien von swagger-ui/dist kopiere, sehe ich nur das Pet-Beispiel. Wie bekomme ich swagger-ui um json meines Webservice zu nutzen? – Cengiz

+0

Haben Sie Swagger aktiviert, wie im Beispiel gezeigt? https://github.com/jxc876/boot-swagger-demo/blob/master/src/main/java/com/mramez/App.java – dmydlarz

+0

Was meinen Sie mit "Hinzufügen von swagger-ui Ressourcen zu' src \ main \ webapp \ docs' "? Was genau hast du gemacht? –

3

Der Trick ist dass deine Swagger-ui maven-Abhängigkeit ein Webjar ist. Sie müssen den Pfad von Ihrem Webserver zum Webjar konfigurieren.

verwendete ich die aktuelle Maven Abhängigkeit:

<dependency> 
    <groupId>org.webjars</groupId> 
    <artifactId>swagger-ui</artifactId> 
    <version>2.1.3</version> 
</dependency> 

Und es mit Anmerkungen konfiguriert:

@Configuration 
@EnableWebMvc 
public class RestConfiguration extends WebMvcConfigurerAdapter { 
    @Override 
    public void addResourceHandlers(ResourceHandlerRegistry registry) { 
     registry.addResourceHandler("/swagger-ui/**").addResourceLocations("classpath:/META-INF/resources/webjars/swagger-ui/2.1.3/"); 
    } 
// [...] 
} 

Das Gleiche gilt mit XML in Ihre Federkonfiguration durchgeführt werden kann:

<mvc:resources mapping="/swagger-ui/**" location="classpath:/META-INF/resources/webjars/swagger-ui/2.1.3/"/> 

Siehe auch: http://www.jamesward.com/2012/04/30/webjars-in-spring-mvc

Verwandte Themen