2016-05-05 13 views
0

У меня есть проект Apo для отдыха, и я пытаюсь использовать swagger для документации и пользовательского интерфейса. Я смог получить документацию, но пользовательский интерфейс не видит документацию api и не работает. Я скопировал содержимое папки dist в разделе webapps/WEB-INF Я могу получить доступ к документации, используя: http://localhost:8080/ml-api-ws/v2/api-docs Я попытался изменить url в index.html, чтобы указать на эту документацию, но был взломан.Swagger UI не работает Rest APi

WebApps/WEB-INF:

enter image description here

Бланк Сваггер:

enter image description here index.html:

<script type="text/javascript"> 
    $(function() { 
     var url = window.location.search.match(/url=([^&]+)/); 
     if (url && url.length > 1) { 
     url = decodeURIComponent(url[1]); 
     } else { 
     //url = "http://petstore.swagger.io/v2/swagger.json"; 
     url = "http://localhost:8080/ml-api-ws/v2/api-docs"; 
     } 

pom.xml

<!-- SpringFox Dependency For Swagger --> 
<dependency> 
    <groupId>io.springfox</groupId> 
    <artifactId>springfox-swagger2</artifactId> 
    <version>2.4.0</version> 
</dependency> 
<!-- Swagger UI Depedency --> 
<dependency> 
    <groupId>io.springfox</groupId> 
    <artifactId>springfox-swagger-ui</artifactId> 
    <version>2.0.2</version> 
</dependency> 

servlet.xml:

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

<context:annotation-config/> 
    <context:component-scan base-package="com.epsilon.al.ml.controller" /> 

<mvc:resources mapping="swagger-ui.html" location="classpath:/META-INF/resources/"/> 
<mvc:resources mapping="/webjars/**" location="classpath:/META-INF/webjars/"/> 
<mvc:default-servlet-handler/> 
    <mvc:annotation-driven /> 
    <bean 
     class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
     <property name="prefix"> 
     <value>/WEB-INF/jsp/</value>  
     </property> 
     <property name="suffix"> 
      <value>.jsp</value> 
     </property> 
    </bean> 

<bean id="swagger2Config" class = "springfox.documentation.swagger2.configuration.Swagger2DocumentationConfiguration" /> 
    <!-- <bean name="viewResolver" class="org.springframework.web.servlet.view.BeanNameViewResolver" 
     /> <bean name="jsonTemplate" class="org.springframework.web.servlet.view.json.MappingJackson2JsonView" 
     /> --> 
</beans> 

web.xml:

<!DOCTYPE web-app PUBLIC 
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
"http://java.sun.com/dtd/web-app_2_3.dtd" > 

<web-app> 
    <display-name>MlApi</display-name> 

    <context-param> 
     <param-name>contextConfigLocation</param-name>  
     <param-value>classpath:*-context.xml</param-value> 
    </context-param> 

    <!-- Creates the Spring Container shared by all Servlets and Filters --> 
    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 

    <servlet> 
     <servlet-name>ml-rest-api</servlet-name> 
     <servlet-class> 
      org.springframework.web.servlet.DispatcherServlet 
     </servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>ml-rest-api</servlet-name> 
     <!-- <url-pattern>/ml-api-ws/*</url-pattern> --> 
     <url-pattern>/</url-pattern> 
    </servlet-mapping> 

<!-- <welcome-file-list> 
     <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> --> 
     <welcome-file-list> 
     <welcome-file>/WEB-INF/index.html</welcome-file> 
    </welcome-file-list> 
</web-app> 

Я также попытался сохранения документации АФИ в .json файл и исследовать с чванством-интерфейса, но страница ничего не делать.

Спасибо!

ответ

2

Мне удалось решить эту проблему, но создав папку под webapps и перемещая содержимое папки dist внутри этого. После этого я добавил добавление сопоставления для index.html в файл servlet.xml и смог получить доступ к api.

+0

Вы могли сохранить документацию api в .json? – RCR

+0

Мне удалось получить доступ к json, используя URL-адрес, который соответствует моим потребностям. – Ani