2015-04-07 50 views
0

我在沒有web.xml的情況下將CXF用於REST風格的Web服務。所有CXF和其餘端點配置存儲在xml文件中(由Spring管理)。現在我試圖在我的服務中實現Swagger。我已經添加SwaggerFeature到我的JAX-RS的配置:沒有web.xml和Swagger UI的Apache CXF

<jaxrs:features> 
     <ref bean="swaggerFeature"/> 
</jaxrs:features> 

所以現在純JSON說明對我的終點(http://localhost:8080/api-docs)工作正常。但我不知道如何將Swagger UI連接到我的項目。我見過的所有例子都使用web.xml。沒有這種配置可以連接Swagger UI嗎?提前致謝。


編輯。現在解決了這個問題。 CXF使用嵌入式碼頭服務器。我只是將自定義org.eclipse.jetty.server.handler.ResourceHandler添加到JettyHTTPServerEngine bean聲明並對其進行配置。因此靜態內容暴露於網絡。

回答

1

swagger-ui與web.xml無關。如果您將其作爲應用程序的一部分託管,則只需修改index.html並將其指向/api-docs即可。如果你將它分開,你仍然需要修改index.html,但是你還需要在你的應用程序中啓用CORS支持。 swagger-ui和swagger-core都包含更多的信息。

+0

好的,我修改了index.html,但我還需要一個接受http請求並指向該index.html的servlet?我不完全明白如何做到這一點。謝謝。 – stinger

+0

不需要servlet。應用程序服務器/ Web容器完全能夠暴露靜態內容。您如何設置它取決於您構建應用程序的方式(手動,maven,gradle等)。 – Ron

+0

我使用Maven構建。 – stinger