Không thể thực hiện mục tiêu org.codehaus.mojo: exec-maven-plugin: 1.5.0: exec


10

Ba tuần trước tôi đã hoàn thành công việc trên một ứng dụng web. Tất cả mọi thứ đã chạy mà không có vấn đề.

Bây giờ, ba tuần sau, không thay đổi gì (!!!), tôi muốn chạy lại ứng dụng nhưng lần này tôi nhận được thông báo lỗi sau:

 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

Có chuyện gì ở đây vậy?


Nội dung của tệp pom.xml của tôi là như sau:

<?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>

Vì vậy, bạn đã cố gắng triển khai để Glassfish? Lệnh nào bạn đang chạy chính xác? Bạn đã cài đặt lại máy chủ chưa?
acm

1
Tôi đang sử dụng máy chủ payara, không phải máy chủ thủy tinh. Nhưng hai điều này dường như có liên quan chặt chẽ.
ổn định

3
Bạn đã kiểm tra org.glassfish: phụ thuộc javax.json chưa? Xem stackoverflow.com/questions/47022653/ và và stackoverflow.com/questions/33083050/ , trong đó trong cả hai trường hợp, sự phụ thuộc bị thiếu là vấn đề ...
blagerweij

1
Sự phụ thuộc json nên được cung cấp bởi máy chủ ứng dụng. Xem ví dụ: stackoverflow.com/questions/57726562/ từ
assylias

Nâng cấp phiên bản maven của bạn lên phiên bản mới nhất - 3.6.3 và xây dựng lại
Ashish Patel

Câu trả lời:


3

@Aquer B.: Phụ thuộc javax.json có lớp triển khai JsonProvider là phụ thuộc (như Code_Mode đã chỉ ra) ... nhưng (như được chỉ ra bởi assylias), trên thực tế, thậm chí không cần phụ thuộc javax.json như máy chủ ứng dụng nên cung cấp sự phụ thuộc này.


thực tế tôi có vấn đề với máy chủ (xem stackoverflow.com/questions/61445520/, ) ... điều đó có nghĩa là mọi thứ nên được cung cấp bởi máy chủ vì khi máy chủ hoạt động trơn tru (3 tuần trước), tôi đã không không cần phải đặt các phụ thuộc đó vào tệp pom.xml .... mọi thứ hoạt động mà không cần điều đó ... điều đó có nghĩa là chúng phải được cung cấp bởi máy chủ ứng dụng
ổn định

@Code_Mode: Có vẻ như tệp pom.xml hoàn toàn không cần phải tăng cường ... vấn đề rõ ràng là máy chủ không hoạt động như bình thường ... nên giải pháp cho câu hỏi này: stackoverflow.com/ câu hỏi / 61445520 / Nhận cũng sẽ là câu trả lời cho câu hỏi được đăng ở đây. ... vì vậy, bất cứ ai tìm ra giải pháp cho câu hỏi khác đó sẽ được thưởng 500 điểm thưởng
ổn định

1
@Aquer B.: Có vẻ như tệp pom.xml không cần phải tăng thêm chút nào ... vấn đề rõ ràng là máy chủ không hoạt động như bình thường ... nên giải pháp cho câu hỏi này: stackoverflow. com / câu hỏi / 61445520 / Nhận cũng sẽ là câu trả lời cho câu hỏi được đăng ở đây. ... vì vậy, bất cứ ai tìm ra giải pháp cho câu hỏi khác đó sẽ được thưởng 500 điểm thưởng
ổn định

@steady_proceed Ok !! Bạn có thể chia sẻ cơ sở mã của bạn để thử nghiệm? Tôi sẽ tự tải xuống máy chủ ứng dụng payara.
Anish B.

@steady_proTHER Vui lòng thêm phiên bản máy chủ payara? Tôi sẽ cố gắng giải quyết vấn đề.
Anish B.

6

Bạn đang sử dụng javaee-web-apiphụ thuộc và nó có javax.json.spi.JsonProvider.classtệp lớp không phải là triển khai thực tế.

Bạn cần phải có việc thực hiện thực tế JsonProvider. Vì vậy, thêm javax.jsonphụ thuộc. Nó có JsonProvider lớp thực hiện 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>

Để biết thêm chi tiết, kiểm tra ở đây .


3

Tôi đã lấy các phụ thuộc từ pom.xml của bạn để thử nghiệm.

Tôi đã tạo tệp pom.xml của mình.

<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>

Tôi đã kiểm tra xem nó có chứa các lọ cần thiết cho vấn đề này không.

Tôi đã sử dụng lệnh maven : mvn dependency:tree. Sử dụng lệnh này, bạn có thể thấy lọ nào và lọ phụ thuộc được sử dụng.

nhập mô tả hình ảnh ở đây

Những -> javax.json& javax.json-apihiện vật bị thiếu.

Thêm phụ thuộc này vào pom.xmlđể bỏ qua lỗi này:

<!-- 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>

Lưu ý: javax.json-apiviệc thực hiện được thực hiện bởi javax.json.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.