2016-10-06 20 views
0

在warcat文件中有一個在tomcat中運行的Web應用程序,並且作爲其中的一部分我有jax-rs rest apis使用jax-rs實現並由澤西島綁定。這些休息apis有一些swagger註釋,但我似乎無法讓swagger-ui正常工作。在澤西島/ jax-rs中加載swagger-ui目錄

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> 

的球衣配置所以,當我在戰爭文件我招搖的UI HTML文件可以訪問它們; localhost:8181/warFile/docs。然而,我想這個加載在我的rest api可能是localhost相同的URL:8181/warFile/rest/docs

我可以訪問本地主機上的swagger.json文件:8181/warFile/rest/swagger .json

是否需要在我的servlet或beanconfig的上下文中使用類加載器加載swagger? swagger-ui也可以使用/ lib目錄中的一個jar依賴包進行打包。我能以某種方式引用它嗎?

+0

你有index.html你提供swagger url嗎?類似於http:// localhost:8181/warFile/docs? – Suyash

+0

是的,當我加載本地主機:8181/warFile/docs的swagger-ui將正確呈現。我想要做的是將它連接到與'localhost:8181/warFile/rest'中的jax-rs相同的servlet或uri路徑。這是可能的,甚至是正確的方法? – user2524908

+0

這個服務器專門用於Swagger嗎?如果是這樣的話,那麼你正朝着正確的方向前進。您在index.html中提供了哪些網址? – Suyash

回答

0

使用Swagger UI的最簡單方法是將其打包到WAR文件中:從GitHub repository下載Swagger UI文件並將dist目錄的內容複製到項目的Web內容文件夾中。然後只需更新index.html即可指向您的swagger.json