2016-10-06 5 views
0

У вас есть веб-приложение, работающее в tomcat в военном файле, и как часть его, у меня есть jax-rs rest apis, реализованный с jax-rs и связанный с трикотажем. В этих остатках apis есть несколько комментариев, но я не могу заставить swagger-u работать нормально.Загрузка каталога swagger-ui в jersey/jax-rs

Strucure

warFile 
+docs 
----swagger is here 
+web-inf 
++web.xml 
++lib 
----all my jax-rs jars here 
+meta-inf 
----nothing 

Джерси конфиг я определил

public class JerseyConfig extends ResourceConfig { 

     public JerseyConfig() throws Exception { 
      packages("com.myapp.somefiles"); 

      BeanConfig config = new BeanConfig(); 
      config.setBasePath("rest"); 
      config.setResourcePackage("com.myapp.somefiles"); 
      config.setScan(true); 

     } 

web.xml

<servlet> 
     <servlet-name>com.myapp.somefile.JerseyConfig</servlet-name> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>com.myapp.somefile.JerseyConfig</servlet-name> 
     <url-pattern>/rest/*</url-pattern> 
    </servlet-mapping> 

Так что, когда у меня есть чванство-интерфейс HTML файлы в файл WAR I может получить к ним доступ; localhost: 8181/warFile/docs. Тем не менее, я хотел бы, чтобы это загрузилось по тому же адресу, что и мой rest api, который может быть localhost: 8181/warFile/rest/docs

Я могу получить доступ к файлу swagger.json на localhost: 8181/warFile/rest/swagger .json

Нужно ли загружать swagger с загрузчиком классов в контексте моего сервлета или beanconfig? Swagger-ui также может быть упакован с одной из зависимостей jar, найденной в каталоге/lib. Могу ли я это сделать?

+0

У вас есть index.html, где вы указываете URL-адрес swagger? Что-то вроде http: // localhost: 8181/warFile/docs? – Suyash

+0

Да при загрузке localhost: 8181/warFile/docs инструмент swagger-ui будет отображаться правильно. То, что я пытаюсь сделать, это прикрепить его к тому же сервлу или uri-пути, что и jax-rs, который находится в «localhost: 8181/warFile/rest». Возможно ли это, или даже правильный подход? – user2524908

+0

Этот сервер специально предназначен для Swagger? Если это так, тогда вы идете в правильном направлении. Какой URL-адрес вы указали в index.html? – Suyash

ответ

0

Самый простой способ использования пользовательского интерфейса Swagger заключается в его упаковке в ваш файл WAR: загрузите файлы интерфейса Swagger с GitHub repository и скопируйте содержимое каталога dist в папку веб-содержимого вашего проекта. Затем просто обновите index.html, чтобы указать на ваш swagger.json.