我正在使用教程中的Dropwizard sample project并遇到以下奇怪的问题:
使用以下服务器配置
server:
type: default
applicationConnectors:
- type: http
port: 8080
我的资源会返回正确的回复。
当我将其更改为:
server:
type: simple
我看到(来自Jetty的日志)它已正确注册和加载但不起作用 - 如果我尝试相同的路径,我在浏览器中看到404并且
GET /wizard-resource/rs 200
在日志中。我试图找到yaml configs中simple
和default
之间的区别,但谷歌并没有对这个话题有所了解。
所以,这里有两个问题:
答案 0 :(得分:1)
根据Dropwizard Javadocs的说法:
{@link ServerFactory}的单连接器实现,非常合适 适用于应用程序受限的PaaS部署(例如,Heroku) 单个运行时定义的端口。启动脚本可以覆盖 通过{@code -Ddw.server.connector.port = $ PORT}端口。
{@link ServerFactory}的默认实现,允许 多套应用程序和管理连接器,全部运行 单独的端口。管理连接器使用单独的线程池来保留 控制和数据平面分开(ish)。
Configuration Reference documentation中也提到过(虽然不是很彻底)。
不确定为什么它被记录为200而它是404,它可能是一个错误;但是你获得404的原因可能是因为简单服务器中的默认applicationContextPath
配置是/application
。所以如果你试试
GET /application/wizard-resource/rs
它应该有用。