2016-10-06 6 views
0

WARファイルでTomcatで実行しているWebアプリケーションをjax-rsで実装し、jax-rsで実装し、jerseyでバインドしています。これらの残りのapisはいくつかのぼんやりした注釈を持っていますが、私はswagger-uiが適切に機能するように見えることはできません。jersey/jax-rsのswagger-uiディレクトリをロードする

Strucure

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

私はwarファイルに威張っ-UI htmlファイルを持っているとき、私は私がそう

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> 

を定義したジャージの設定それらにアクセスすることができます。 localhost:8181/warFile/docs。しかし、私はlocalhost:8181/warFile/rest/docsのような私の残りのAPIと同じURLにロードしたいと思っています。localhost:8181/warFile/rest/swaggerでswagger.jsonファイルにアクセスできます。 .json

私のサーブレットやBeanconfigのコンテキストでクラスローダーを使ってswaggerを読み込む必要はありますか? swagger-uiには、/ libディレクトリにあるjar依存関係の1つをパッケージ化することもできます。何とかこれを参照できますか?

+0

あなたはswaggerのURLを提供しているindex.htmlをお持ちですか? http:// localhost:8181/warFile/docsのようなもの? – Suyash

+0

はいlocalhost:8181/warFile/docsを読み込むと、swagger-uiが正しくレンダリングされます。私がしようとしているのは、 'localhost:8181/warFile/rest'にあるjax-rsと同じサーブレットまたはuriパスに接続することです。それは可能なのでしょうか、それとも正しいアプローチですか? – user2524908

+0

このサーバーはSwagger専用ですか?そうであれば正しい方向に進んでいます。 index.htmlで提供したURLは? – Suyash

答えて

0

Swagger UIを使用する最も簡単な方法は、WARファイルにパックすることです。GitHub repositoryからSwagger UIファイルをダウンロードし、distディレクトリの内容をプロジェクトのWebコンテンツフォルダにコピーします。次に、をswagger.jsonを指すように更新してください。

関連する問題