Dropwizard YAML文件中无法识别的字段

时间:2016-11-17 16:54:26

标签: java dropwizard

启动使用MySQL数据库连接的Dropwizard应用程序时出现以下错误:

app.yaml has an error:
* Unrecognized field at: database
  Did you mean?:
    - metrics
    - instanceId
    - logging
    - server
    - statsConfig
      [12 more]

在我的Dropwizard配置文件的末尾,我有以下内容:

database:
  driverClass: com.mysql.jdbc.Driver
  user: ${MYSQL_USERNAME}
  password: ${MYSQL_PASSWORD}
  url: ${MYSQL_URL}

在我的配置类中,我有以下内容:

@Valid()
@NotNull()
@JsonProperty()
private static DataSourceFactory database;

public static DataSourceFactory getDatabase() {
  return database;
}

public static void setDatabase(final DataSourceFactory database) {
  AppConfig.database = database;
}

其他几个复杂的配置对象正确加载(这是一个非常大的配置文件),但这个不是。有什么想法我为什么会收到这个错误?

编辑此问题类似于以下问题:UnrecognizedPropertyException While Reading A YAML File。但是,这个解决方案对我不起作用。

1 个答案:

答案 0 :(得分:3)

修改:检查示例应用herehere

  1. if (len(pin) != 4 and len(pin) != 6): - 这里有额外的括号。
  2. @JsonProperty() - 从此处删除private static DataSourceFactory database;。请参阅the docs它应该是什么样子。
  3. 同时根据文档和this question添加static
  4. 我已查看旧版本= new DataSourceFactory();,而第2号是您最直接的问题。