Dropwizard配置(yml)表现得很奇怪

时间:2015-04-14 14:19:39

标签: java yaml dropwizard

我正在使用教程中的Dropwizard sample project并遇到以下奇怪的问题:

  • 使用以下服务器配置

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

    我的资源会返回正确的回复。

  • 当我将其更改为:

    server:
      type: simple
    

    我看到(来自Jetty的日志)它已正确注册和加载但不起作用 - 如果我尝试相同的路径,我在浏览器中看到404并且

    GET /wizard-resource/rs 200 
    

    在日志中。我试图找到yaml configs中simpledefault之间的区别,但谷歌并没有对这个话题有所了解。

所以,这里有两个问题:

  1. 为什么使用简单连接器我会在浏览器中获得200个日志但是404个?
  2. 简单连接器有什么用?当它比默认连接器更好?

1 个答案:

答案 0 :(得分:1)

根据Dropwizard Javadocs的说法:

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

它应该有用。