Dropwizard 配置 (yml) 行为异常
Dropwizard config (yml) behaves strangely
我正在使用教程中的 Dropwizard sample project 并遇到以下奇怪问题:
使用以下服务器配置
server:
type: default
applicationConnectors:
- type: http
port: 8080
我的资源returns正确回复。
当我改成:
server:
type: simple
我看到(从 Jetty 的日志中)它已正确注册和加载但不起作用 - 如果我尝试相同的路径,我在浏览器中看到 404 并且
GET /wizard-resource/rs 200
在日志中。我试图在 yaml 配置中找到 simple
和 default
之间的区别,但是 Google 并没有对这个话题有太多的了解。
所以,这里有两个问题:
- 为什么使用简单的连接器我在日志中得到 200 而在浏览器中得到 404?
- 简单连接器有什么用,什么时候比默认连接器更好?
根据 Dropwizard Javadocs:
A single-connector implementation of {@link ServerFactory}, suitable
for PaaS deployments (e.g., Heroku) where applications are limited to
a single, runtime-defined port. A startup script can override the
port via {@code -Ddw.server.connector.port=$PORT}.
The default implementation of {@link ServerFactory}, which allows for
multiple sets of application and admin connectors, all running on
separate ports. Admin connectors use a separate thread pool to keep
the control and data planes separate(ish).
在 Configuration Reference documentation 中也提到了(虽然不彻底)。
不确定为什么记录为 200 而记录为 404,这可能是一个错误;但是你得到 404 的原因可能是因为简单服务器中的默认 applicationContextPath
配置是 /application
。所以如果你尝试
GET /application/wizard-resource/rs
应该可以。
我正在使用教程中的 Dropwizard sample project 并遇到以下奇怪问题:
使用以下服务器配置
server: type: default applicationConnectors: - type: http port: 8080
我的资源returns正确回复。
当我改成:
server: type: simple
我看到(从 Jetty 的日志中)它已正确注册和加载但不起作用 - 如果我尝试相同的路径,我在浏览器中看到 404 并且
GET /wizard-resource/rs 200
在日志中。我试图在 yaml 配置中找到
simple
和default
之间的区别,但是 Google 并没有对这个话题有太多的了解。
所以,这里有两个问题:
- 为什么使用简单的连接器我在日志中得到 200 而在浏览器中得到 404?
- 简单连接器有什么用,什么时候比默认连接器更好?
根据 Dropwizard Javadocs:
A single-connector implementation of {@link ServerFactory}, suitable for PaaS deployments (e.g., Heroku) where applications are limited to a single, runtime-defined port. A startup script can override the port via {@code -Ddw.server.connector.port=$PORT}.
The default implementation of {@link ServerFactory}, which allows for multiple sets of application and admin connectors, all running on separate ports. Admin connectors use a separate thread pool to keep the control and data planes separate(ish).
在 Configuration Reference documentation 中也提到了(虽然不彻底)。
不确定为什么记录为 200 而记录为 404,这可能是一个错误;但是你得到 404 的原因可能是因为简单服务器中的默认 applicationContextPath
配置是 /application
。所以如果你尝试
GET /application/wizard-resource/rs
应该可以。