JetBrains / Exposed

Kotlin SQL Framework
http://jetbrains.github.io/Exposed/
Apache License 2.0
8.25k stars 690 forks source link

java.lang.NoSuchMethodError: 'org.jetbrains.exposed.sql.Database org.jetbrains.exposed.sql.Database$Companion.connect$default' #1400

Closed StevenKrahforst closed 1 year ago

StevenKrahforst commented 2 years ago

I don't know why this happens.

Usage in a Spigot plugin.

My Code:

Database.connect("jdbc:mysql://.../...", "com.mysql.jdbc.Driver", "...", "...")

The Exception:

java.lang.NoSuchMethodError: 'org.jetbrains.exposed.sql.Database org.jetbrains.exposed.sql.Database$Companion.connect$default(org.jetbrains.exposed.sql.Database$Companion, java.lang.String, java.lang.String, java.lang.String, java.lang.String, kotlin.jvm.functions.Function1, kotlin.jvm.functions.Function1, int, java.lang.Object)'
        at dev.krahforst.project.Project.onEnable(Project.kt:97) ~[project.jar:?]
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:264) ~[paper-api-1.18-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:370) ~[paper-api-1.18-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:500) ~[paper-api-1.18-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.craftbukkit.v1_18_R1.CraftServer.enablePlugin(CraftServer.java:563) ~[paper-1.18.jar:git-Paper-35]
        at org.bukkit.craftbukkit.v1_18_R1.CraftServer.enablePlugins(CraftServer.java:477) ~[paper-1.18.jar:git-Paper-35]
        at org.bukkit.craftbukkit.v1_18_R1.CraftServer.reload(CraftServer.java:1014) ~[paper-1.18.jar:git-Paper-35]
        at org.bukkit.Bukkit.reload(Bukkit.java:814) ~[paper-api-1.18-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:54) ~[paper-api-1.18-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:159) ~[paper-api-1.18-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.craftbukkit.v1_18_R1.CraftServer.dispatchCommand(CraftServer.java:876) ~[paper-1.18.jar:git-Paper-35]
        at org.bukkit.craftbukkit.v1_18_R1.CraftServer.dispatchServerCommand(CraftServer.java:839) ~[paper-1.18.jar:git-Paper-35]
        at net.minecraft.server.dedicated.DedicatedServer.handleConsoleInputs(DedicatedServer.java:507) ~[paper-1.18.jar:git-Paper-35]
        at net.minecraft.server.dedicated.DedicatedServer.tickChildren(DedicatedServer.java:481) ~[paper-1.18.jar:git-Paper-35]
        at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1470) ~[paper-1.18.jar:git-Paper-35]
        at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1264) ~[paper-1.18.jar:git-Paper-35]
        at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:317) ~[paper-1.18.jar:git-Paper-35]
        at java.lang.Thread.run(Thread.java:833) ~[?:?]

My 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>
    <packaging>pom</packaging>

    <name>Project</name>
    <groupId>dev.krahforst</groupId>
    <artifactId>project</artifactId>
    <version>1.0.0</version>

    <properties>
        <kotlin.version>1.6.0</kotlin.version>
        <maven.compiler.source>16</maven.compiler.source>
        <maven.compiler.target>16</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <build>
        <sourceDirectory>${project.basedir}/src/main/kotlin</sourceDirectory>
        <resources>
            <resource>
                <directory>${project.basedir}/src/main/resources</directory>
                <filtering>false</filtering>
                <includes>
                    <include>plugin.yml</include>
                </includes>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>org.jetbrains.kotlin</groupId>
                <artifactId>kotlin-maven-plugin</artifactId>
                <version>${kotlin.version}</version>
                <executions>
                    <execution>
                        <id>compile</id>
                        <phase>process-sources</phase>
                        <goals>
                            <goal>compile</goal>
                        </goals>
                        <configuration>
                            <sourceDirs>
                                <sourceDir>${project.basedir}/src/main/kotlin</sourceDir>
                                <sourceDir>${project.basedir}/src/main/java</sourceDir>
                            </sourceDirs>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version>
                <executions>
                    <execution>
                        <id>default-compile</id>
                        <phase>none</phase>
                    </execution>
                    <execution>
                        <id>java-compile</id>
                        <phase>compile</phase>
                        <goals>
                            <goal>compile</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.0.0</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <repositories>
        <repository>
            <id>jitpack.io</id>
            <url>https://jitpack.io</url>
        </repository>
        <repository>
            <id>enginehub-maven</id>
            <url>https://maven.enginehub.org/repo/</url>
        </repository>
        <repository>
            <id>public</id>
            <url>https://repo.songoda.com/repository/public/</url>
        </repository>
    </repositories>

    <dependencies>

        <dependency>
            <groupId>org.jetbrains.kotlin</groupId>
            <artifactId>kotlin-stdlib</artifactId>
            <version>${kotlin.version}</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.jetbrains.kotlin</groupId>
            <artifactId>kotlin-reflect</artifactId>
            <version>1.6.0</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.jetbrains.exposed</groupId>
            <artifactId>exposed</artifactId>
            <version>0.17.14</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.jetbrains.exposed</groupId>
            <artifactId>exposed-jdbc</artifactId>
            <version>0.36.2</version>
            <scope>compile</scope>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.27</version>
            <scope>compile</scope>
        </dependency>

        <dependency>
            <groupId>com.moandjiezana.toml</groupId>
            <artifactId>toml4j</artifactId>
            <version>0.7.2</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>io.sentry</groupId>
            <artifactId>sentry</artifactId>
            <version>5.4.0</version>
            <scope>compile</scope>
        </dependency>

        <dependency>
            <groupId>org.reflections</groupId>
            <artifactId>reflections</artifactId>
            <version>0.10.2</version>
            <scope>compile</scope>
        </dependency>

        <dependency>
            <groupId>org.javassist</groupId>
            <artifactId>javassist</artifactId>
            <version>3.28.0-GA</version>
        </dependency>
        <dependency>
            <groupId>cglib</groupId>
            <artifactId>cglib</artifactId>
            <version>3.3.0</version>
            <scope>compile</scope>
        </dependency>

        <dependency>
            <groupId>org.zeroturnaround</groupId>
            <artifactId>zt-zip</artifactId>
            <version>1.14</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>20030203.000550</version>
            <scope>compile</scope>
        </dependency>

    </dependencies>

</project>
Tapac commented 2 years ago

@StevenKrahforst you have mix of two different Exposed versions in your code:

       <dependency>
           <groupId>org.jetbrains.exposed</groupId>
           <artifactId>exposed</artifactId>
           <version>0.17.14</version>
           <scope>compile</scope>
       </dependency>
       <dependency>
           <groupId>org.jetbrains.exposed</groupId>
           <artifactId>exposed-jdbc</artifactId>
           <version>0.36.2</version>
           <scope>compile</scope>
       </dependency>

Please check https://github.com/JetBrains/Exposed/wiki/Getting-Started#maven

maxtar commented 2 years ago

I have the similar issue: изображение

My build.gradle.kts:

dependencies {
    implementation("com.microsoft.sqlserver:mssql-jdbc:9.4.1.jre11")

    implementation("org.jetbrains.exposed:exposed-core:0.37.3")
    implementation("org.jetbrains.exposed:exposed-dao:0.37.3")
    implementation("org.jetbrains.exposed:exposed-jdbc:0.37.3")
}
Tapac commented 2 years ago

@maxtar please show the whole code block

maxtar commented 2 years ago

@Tapac изображение

maxtar commented 2 years ago

@Tapac sorry. My mistake. config.db.password not a string. It's ok. Work for me.

buzoherbert commented 2 years ago

Hello

I have the same issue. It happened when I moved into the latest version of the exposed BOM

    implementation(platform("org.jetbrains.exposed:exposed-bom:0.37.3"))
    implementation("org.jetbrains.exposed:exposed-core")
    implementation("org.jetbrains.exposed:exposed-dao")
    implementation("org.jetbrains.exposed:exposed-jdbc")
    implementation("org.jetbrains.exposed:exposed-spring-boot-starter")
    implementation("org.jetbrains.exposed:exposed-java-time")
Tapac commented 2 years ago

@buzoherbert , can you show the part of the code from the IDE where it's happen?

bog-walk commented 1 year ago

Please reopen this issue if the problem persists with current version 0.41.1.

If it does and if possible, please confirm build details and IDE version, as well as a code sample that produces the error.

bridgelol commented 1 month ago

Hey this issue is happening again for me