io.dropwizard.configuration.ConfigurationValidationException

问题描述 投票:1回答:1

我是新手dropwizard / eclipse并且跟随Example code

我正在使用带有JDK 8的Eclipse 2018-12,并且在尝试运行java应用程序时,我得到以下错误

io.dropwizard.configuration.ConfigurationValidationException:默认配置有以下错误:* apiKey可能不为空* apiURL可能不为空

at io.dropwizard.configuration.BaseConfigurationFactory.validate(BaseConfigurationFactory.java:238)
at io.dropwizard.configuration.BaseConfigurationFactory.build(BaseConfigurationFactory.java:128)
at io.dropwizard.configuration.BaseConfigurationFactory.build(BaseConfigurationFactory.java:109)
at io.dropwizard.cli.ConfiguredCommand.parseConfiguration(ConfiguredCommand.java:128)
at io.dropwizard.cli.ConfiguredCommand.run(ConfiguredCommand.java:74)
at io.dropwizard.cli.Cli.run(Cli.java:78)
at io.dropwizard.Application.run(Application.java:93)
at com.recheck.helloRecheck.HelloRecheckApplication.main(HelloRecheckApplication.java:18)

我的config.yml文件如下所示

apiURL: https://openexchangerates.org/api/latest.json
apiKey: 307738b2b3164072b4bfdc2828dd5f33

jerseyClient: 
timeout: 512ms
workQueueSize: 16 

我的应用程序文件如下所示

public class HelloRecheckApplication extends Application<HelloRecheckConfiguration> {

public static void main(final String[] args) throws Exception {
    new HelloRecheckApplication().run(args);
}

@Override
public String getName() {
    return "HelloRecheck";
}

//@Override
public void initialize(final Bootstrap<HelloRecheckConfiguration> bootstrap) {
    // TODO: application initialization
}

@Override
public void run(final HelloRecheckConfiguration configuration,
                final Environment environment) {

    //Create Jersey client.
    final Client client = new JerseyClientBuilder(environment)
            .using(configuration.getJerseyClientConfiguration())
            .build(getName());

    environment.jersey().register(new HelloResource());
    //Register a resource using Jersey client.
    environment.jersey().register(
            new ConverterResource(
                    client,
                    configuration.getApiURL(),
                    configuration.getApiKey())
            );


}

}

我的Pom文件如下所示

    <modelVersion>4.0.0</modelVersion>
<prerequisites>
    <maven>3.0.0</maven>
</prerequisites>

<groupId>com.recheck</groupId>
<artifactId>helloRecheck</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>HelloRecheck</name>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <dropwizard.version>1.3.8</dropwizard.version>
    <mainClass>com.recheck.helloRecheck.HelloRecheckApplication</mainClass>
</properties>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>io.dropwizard</groupId>
            <artifactId>dropwizard-bom</artifactId>
            <version>${dropwizard.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <dependency>
        <groupId>io.dropwizard</groupId>
        <artifactId>dropwizard-core</artifactId>
    </dependency>
    <dependency>
        <groupId>io.dropwizard</groupId>
        <artifactId>dropwizard-auth</artifactId>
    </dependency>
    <dependency>
        <groupId>io.dropwizard</groupId>
        <artifactId>dropwizard-hibernate</artifactId>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.36</version>
    </dependency>
    <dependency>
        <groupId>io.dropwizard</groupId>
        <artifactId>dropwizard-client</artifactId>
    </dependency>
    <dependency>
        <groupId>io.dropwizard</groupId>
        <artifactId>dropwizard-testing</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <artifactId>maven-shade-plugin</artifactId>
            <version>2.4.1</version>
            <configuration>
                <createDependencyReducedPom>true</createDependencyReducedPom>
                <transformers>
                    <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
                    <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                        <mainClass>${mainClass}</mainClass>
                    </transformer>
                </transformers>

有人可以指导我应该检查什么来克服这个问题。

dropwizard
1个回答
1
投票

我想到了。需要将config.yml添加到参数中。

© www.soinside.com 2019 - 2024. All rights reserved.