2015-04-14 2 views
1

Я работаю с Dropwizard sample project из учебника и столкнулся следующий странный вопрос:Dropwizard конфигурации (ут) ведет себя странно

  • С следующей конфигурации сервера

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

    Мой ресурс возвращает правильный ответ.

  • Когда я изменить его на:

    server: 
        type: simple 
    

    Я вижу (из бревен Jetty), что он был правильно зарегистрирован и загружен, но не работает - если я попробовать тот же путь, который я вижу 404 в браузере и

    GET /wizard-resource/rs 200 
    

    в журналах. Я попытался найти разницу между simple и default в конфигурациях yaml, но Google не пролил много света на эту тему.

Итак, вот два вопроса:

  1. Почему простой разъем я получаю в журналах на 200, но 404 в браузере?
  2. Что такое простой разъем и когда он лучше, чем по умолчанию?

ответ

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 

он должен работать.

+0

да, и он делает :) tnx для уточнения – skwisgaar

Смежные вопросы