2015-04-14 56 views
1

我與Dropwizard sample project從教程工作和麪臨以下奇怪的問題:Dropwizard配置(陽明)行爲異常

  • 用下面的服務器配置

    server: 
        type: default 
        applicationConnectors: 
        - type: http 
        port: 8080 
    

    我的資源返回正確的迴應。

  • 當我將其更改爲:

    server: 
        type: simple 
    

    我看到(從Jetty的日誌),它正在正確註冊和加載,但不工作 - 如果我嘗試相同的路徑我在瀏覽器中看到404和

    GET /wizard-resource/rs 200 
    

    在日誌中。我試圖找到yaml configs中的simpledefault之間的區別,但Google並沒有在這個話題上提供多少信息。

因此,這裏有兩個問題:

  1. 爲什麼用簡單的連接器我得到的日誌在瀏覽器中的200,但404?
  2. 簡單連接器的用途是什麼,當它比默認好?

回答

1

根據Dropwizard Javadoc中:

Simple Server

單連接器實施{@link ServerFactory},適宜爲 PaaS的部署(例如,Heroku的),其中應用程序被限制到 一個運行時定義的端口。啓動腳本可以通過{@code -Ddw.server.connector.port = $ PORT}覆蓋端口 。

Default Server

{@link ServerFactory},這允許 多組應用和管理連接器的默認實現,所有上 單獨的端口運行。管理連接器使用單獨的線程池來保持 控制和數據平面分離(ish)。

Configuration Reference documentation中也提到了(雖然不完全)。

不知道爲什麼它記錄爲200,而它是404,它可能是一個錯誤;但是獲得404的原因可能是因爲簡單服務器中的默認applicationContextPath配置爲/application。所以,如果你嘗試

GET /application/wizard-resource/rs 

它應該工作。

+0

是的,它確實:) tnx澄清 – skwisgaar