L
L
LikeKey2021-03-13 08:30:42
Java
LikeKey, 2021-03-13 08:30:42

How to solve mvn compile error?

I compile the project via maven on a remote server and get the error:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.2:compile (default-compile) on project NewVkBot: Compilation failure
[ERROR] /var/www/likekey/data/newBot/NewVkBot/src/main/java/ru/likekey/vkbot/vk/longpool/LongPollJsonParser.java:[39,45] incompatible types: ru.likekey.vkbot.vk.longpool.MessageFromJson cannot be converted to ru.likekey.vkbot.vk.longpoll.MessageFromJson
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

When compiling on a PC in Intellij, there are no problems.
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>ru.likekey.vkbot</groupId>
    <artifactId>NewVkBot</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>5.4.28.Final</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.23</version>
        </dependency>

        <dependency>
            <groupId>com.vk.api</groupId>
            <artifactId>sdk</artifactId>
            <version>1.0.7</version>
        </dependency>

        <dependency>
            <groupId>com.qiwi</groupId>
            <artifactId>bill-payments-java-sdk</artifactId>
            <version>1.5.0</version>
        </dependency>
    </dependencies>

</project>

MessageFromJson.java:
public class MessageFromJson {

    private int id;
    private int fromId;
    private String text;

    public MessageFromJson(int id, int fromId, String text) {
        this.id = id;
        this.fromId = fromId;
        this.text = text;
    }

    public int getId() {
        return id;
    }

    public int getFromId() {
        return fromId;
    }

    public String getText() {
        return text;
    }
}

LongPollUrlParser.java:
public class LongPollJsonParser {

    LongPollUrlHandler longPollUrlHandler = new LongPollUrlHandler();
    LongPollInfo longPollInfo = new LongPollInfo();
    private String URL = longPollUrlHandler.longPollUrlHandler();


    public LongPollJsonParser() throws ClientException, ApiException, IOException {
    }

    private static Float getTime() {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("ss.SS");
        return Float.parseFloat(simpleDateFormat.format(new Date().getTime()));
    }

    public void startParsing() throws ClientException, ApiException, IOException {
        while (true) {
            JsonElement jsonParser = new JsonParser().parse(URL);
            JsonObject json = jsonParser.getAsJsonObject();
            try {
                json = json.getAsJsonArray("updates").get(0).getAsJsonObject();
                String type = json.get("type").getAsString();
                json = json.getAsJsonObject("object");
                if (type.equals("message_new")) {
                    MessageHandler messageHandler = new MessageHandler(new MessageFromJson(
                            json.get("id").getAsInt(),
                            json.get("user_id").getAsInt(),
                            json.get("body").getAsString()
                    ));
                    new Thread(messageHandler).start();
                } else if (type.equals("message_event")) {
                    MessageHandler messageHandler = new MessageHandler(new MessageFromJson(
                            json.get("conversation_message_id").getAsInt(),
                            json.get("user_id").getAsInt(),
                            json.getAsJsonObject("payload").get("button").getAsString()
                    ));
                    new Thread(messageHandler).start();
                }
            } catch (IndexOutOfBoundsException e) {
            } catch (NullPointerException e) {
            } catch (Exception e) {
            }
            longPollInfo.longPollUpdate();
        }
    }
}

The error occurs at the place where the MessageFromJson object is created

Answer the question

In order to leave comments, you need to log in

1 answer(s)
O
Orkhan, 2021-03-13
Hasanly @azerphoenix

Good afternoon!
Firstly, if you have already decided to build the project on the server, then you can use the maven wrapper instead of maven. Better yet, run the application in a docker container.

Now the project is built, launched, but does not work correctly. A person sends a message to the bot, in the console you can see that the bot accesses the database, but does not send any messages

You can try to debug the project. To do this, run the jar using mvnDebug, and then use the IDE to connect to the server and add breakpoints to debug the project.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question