我們發現,當從開發中的Jetty移動到生產中的Tomcat時,我們的Swagger文檔停止工作 - 直到首次調用提供該操作的servlet之後,纔會在Swagger文檔中顯示任何操作。如何在啓動時初始化()/初始化()一個Scalatra servlet?
在調試器中進行了一些工作後,我們將問題追溯到未調用servlet的方法init()
。我假設Jetty將所有servlet視爲啓動時加載,而Tomcat不是,除非您在web.xml中明確告知它。
不幸的是,在web.xml中,您可以設置爲啓動時加載的唯一東西是servlet,我們的Scalatra web.xml中沒有實際的servlet,只有偵聽器和servlet映射。
我們如何讓Scalatra在啓動時初始化我們的各種ScalatraServlets
?
注:我們上了Scalatra 2.2.2。很有可能轉向2.3快照或里程碑可以解決Swagger問題,但是我們已經做了很多工作來使2.2 Swagger集成起作用,並且我們太接近不了了之。