首页 > 解决方案 > Dropwizard 项目的 Maven 执行程序无法正常工作

问题描述

我尝试构建一个 Dropwizard 应用程序,当我尝试使用 mvn exec:java 执行它时,包括

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>exec-maven-plugin</artifactId>
    <version>1.6.0</version>
        <configuration>
            <mainClass>${mainClass}</mainClass> //the application java class from properties tag 
            <arguments>
                <argument>server</argument>
            </arguments>
      </configuration>
</plugin>

在命令提示符下使用 mvn 命令 > mvn exec:java 期望它构建和部署它,而不是得到以下问题

[INFO] --- exec-maven-plugin:1.6.0:java (default-cli) @ hello-dropwizard ---
[WARNING]
java.lang.ArrayIndexOutOfBoundsException: 1
        at org.hibernate.validator.internal.util.Version.getJavaRelease(Version.java:36)
        at org.hibernate.validator.internal.engine.ConfigurationImpl.<init>(ConfigurationImpl.java:120)
        at org.hibernate.validator.internal.engine.ConfigurationImpl.<init>(ConfigurationImpl.java:106)
        at org.hibernate.validator.HibernateValidator.createSpecializedConfiguration(HibernateValidator.java:27)
        at org.hibernate.validator.HibernateValidator.createSpecializedConfiguration(HibernateValidator.java:24)
        at javax.validation.Validation$ProviderSpecificBootstrapImpl.configure(Validation.java:220)
        at io.dropwizard.validation.BaseValidator.newConfiguration(BaseValidator.java:28)
        at io.dropwizard.jersey.validation.Validators.newConfiguration(Validators.java:35)
        at io.dropwizard.jersey.validation.Validators.newValidatorFactory(Validators.java:27)
        at io.dropwizard.setup.Bootstrap.<init>(Bootstrap.java:68)
        at io.dropwizard.Application.run(Application.java:72)
        at com.dropwizard.demo.HeloDropWizardApplication.main

这种行为有什么原因吗?

标签: javahibernatemavendropwizard

解决方案


注意到我在系统中安装了 java 9,对休眠验证器类的研究很少,它期望返回 8,因为我有 9 版本没有以特定方式返回,如下面的代码

String[] specificationVersion = System.getProperty( "java.specification.version" ).split( "\\." );
return Integer.parseInt( specificationVersion[1] );

我已经更改了 PATH 以包含 java 1.8 路径,即使 maven 抛出了相同的异常。我必须使用 >mvn package 然后使用 >java -jar target\dropwizarddemo.jar server


推荐阅读