【问题标题】:Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.5.0:exec未能执行目标 org.codehaus.mojo:exec-maven-plugin:1.5.0:exec
【发布时间】:2020-08-07 05:19:52
【问题描述】:

三周前,我完成了一个 Web 应用程序的工作。一切运行正常。

现在,三周后,没有任何改变(!!!),我想再次运行应用程序,但这次我收到以下错误消息:

 An error occurred while parsing the server response. Error message is: Provider org.glassfish.json.JsonProviderImpl not found
Exception in thread "main" com.michael.optimizer.exceptions.JsonException: This is a general JSON error. Check logs for details.)
    at com.michael.optimizer.api.JsonRequest.doJsonRequest(JsonRequest.java:36)
    at com.michael.optimizer.api.StationApi.doJsonRequest(StationApi.java:150)
    at com.michael.optimizer.api.StationApi.areaSearch(StationApi.java:73)
    at com.michael.optimizer.Optimizer.main(Optimizer.java:23)
Command execution failed.
org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1)
    at org.apache.commons.exec.DefaultExecutor.executeInternal(DefaultExecutor.java:404)
    at org.apache.commons.exec.DefaultExecutor.execute(DefaultExecutor.java:166)
    at org.codehaus.mojo.exec.ExecMojo.executeCommandLine(ExecMojo.java:764)
    at org.codehaus.mojo.exec.ExecMojo.executeCommandLine(ExecMojo.java:711)
    at org.codehaus.mojo.exec.ExecMojo.execute(ExecMojo.java:289)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
------------------------------------------------------------------------
BUILD FAILURE
------------------------------------------------------------------------
Total time: 5.823 s
Finished at: 2020-04-23T20:20:56+02:00
Final Memory: 7M/123M
------------------------------------------------------------------------
Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.5.0:exec (default-cli) on project optimizer: Command execution failed. Process exited with an error: 1 (Exit value: 1) -> [Help 1]

To see the full stack trace of the errors, re-run Maven with the -e switch.
Re-run Maven using the -X switch to enable full debug logging.

For more information about the errors and possible solutions, please read the following articles:
[Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

这里有什么问题?


我的 pom.xml 文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.michael</groupId>
    <artifactId>optimizer</artifactId>
    <version>1.0-SNAPSHOT</version>


    <name>optimizer</name>

    <properties>
        <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                    <compilerArguments>
                        <endorseddirs>${endorsed.dir}</endorseddirs>
                    </compilerArguments>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.3</version>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.6</version>
                <executions>
                    <execution>
                        <phase>validate</phase>
                        <goals>
                            <goal>copy</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${endorsed.dir}</outputDirectory>
                            <silent>true</silent>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>javax</groupId>
                                    <artifactId>javaee-endorsed-api</artifactId>
                                    <version>7.0</version>
                                    <type>jar</type>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    <dependencies>
        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongo-java-driver</artifactId>
            <version>3.4.1</version>
            <type>jar</type>
        </dependency>
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-web-api</artifactId>
            <version>7.0</version>
            <type>jar</type>
        </dependency>
    </dependencies>
</project>

【问题讨论】:

  • 那么,您是否尝试部署到 Glassfish?你到底在运行什么命令?您是否重新安装了服务器?
  • 我使用的是 payara 服务器,而不是 glassfish 服务器。但这两者似乎密切相关。
  • 您是否检查过 org.glassfish:javax.json 依赖项是否存在?请参阅stackoverflow.com/questions/47022653/…stackoverflow.com/questions/33083050/…,在这两种情况下,缺少依赖项都是问题所在......
  • json依赖应该由应用服务器提供。例如:stackoverflow.com/questions/57726562/…
  • 将您的 maven 版本升级到最新版本 - 3.6.3 并重建

标签: java json netbeans exec-maven-plugin


【解决方案1】:

我从你的 pom.xml 中获取了依赖项进行测试。

我创建了我的 pom.xml。

<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.michael</groupId>
    <artifactId>optimizer</artifactId>
    <version>1.0-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongo-java-driver</artifactId>
            <version>3.4.1</version>
        </dependency>
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-web-api</artifactId>
            <version>7.0</version>
        </dependency>
    </dependencies>
</project>

我检查了它是否包含此问题所需的 jar。

我使用了 maven 命令:mvn dependency:tree。使用该命令可以查看使用了哪些jar和依赖jar。

这些 -> javax.json & javax.json-api 工件丢失。

pom.xml 中添加此依赖项以忽略此错误:

<!-- This jar provides the interfaces -->
<!-- This may be optional as javaee-web-api contains JsonProvider.class -->
<!-- But still I will recommend to add this explicitly for you to be at safer side -->
<dependency>
    <groupId>javax.json</groupId>
    <artifactId>javax.json-api</artifactId>
    <version>1.0</version> 
</dependency> 
<!-- This jar provides the implementation of this interfaces
<dependency>
    <groupId>org.glassfish</groupId>
    <artifactId>javax.json</artifactId>
    <version>1.1.4</version>
</dependency>

注意:javax.json-api 的实现由javax.json 完成。

【讨论】:

    【解决方案2】:

    您正在使用 javaee-web-api 依赖项,它具有 javax.json.spi.JsonProvider.class 类文件而不是实际实现。

    您需要有JsonProvider 的实际实现。所以添加javax.json 依赖。它有JsonProvider实现类org.glassfish.json.JsonProviderImpl.class

    <!-- https://mvnrepository.com/artifact/org.glassfish/javax.json -->
    <dependency>
        <groupId>org.glassfish</groupId>
        <artifactId>javax.json</artifactId>
        <version>1.1.4</version>
    </dependency>
    

    更多详情,请查看here

    【讨论】:

      【解决方案3】:

      @Anish B.:javax.json 依赖项将 JsonProvider 实现类作为依赖项(正如 Code_Mode 所指出的那样)......但是(如 assylias 所指出的那样),实际上甚至不需要 javax.json 依赖项,因为应用服务器应该提供这个依赖。

      【讨论】:

      • 事实上我的服务器有问题(见stackoverflow.com/questions/61445520/…)......一切都应该由服务器提供是有道理的,因为当服务器顺利运行时(3周前),我不需要将这些依赖项放入 pom.xml 文件中......没有那个东西就可以工作......这意味着它们一定是由应用程序服务器提供的
      • @Code_Mode: pom.xml 文件似乎根本不需要扩充......问题显然是服务器没有正常工作......所以解决方案对于这个问题:stackoverflow.com/questions/61445520/… 也将是此处发布的问题的答案。 ...因此,无论谁找到其他问题的解决方案,都将获得 500 分赏金
      • @Anish B.:似乎 pom.xml 文件根本不需要扩充……问题显然是服务器没有按应有的方式工作……所以该问题的解决方案:stackoverflow.com/questions/61445520/… 也将是此处发布的问题的答案。 ...因此,无论谁找到其他问题的解决方案,都将获得 500 分赏金
      • @steady_progress 好的!你能分享你的代码库进行测试吗?我会自己下载payara应用服务器。
      • @steady_progress 请同时添加payara服务器版本?我会努力解决问题的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-10
      • 1970-01-01
      • 2022-12-11
      • 2013-08-03
      • 2012-11-13
      • 2014-01-25
      • 2013-12-27
      相关资源
      最近更新 更多