Hallo Community,
ich arbeite zurzeit an einem Bukkit-Plugin, welches Kommandos aus einer MySQL-Tabelle auslesen soll.
Dabei bekomme ich nun immer folgende Fehlermeldung:
Auf den ersten Blick sieht es so aus, als ob ich keinen Server übergeben hätte, zu dem sich der Task verbinden soll. Dies kann aber nicht sein, da ich die Server-URL selbst übergeben habe.
Hier der Code meiner MySQL-Verbindungsklasse:
Als Server übergebe ich "mrpixeldream.de". Als Passwort und User die von mir eingestellten Daten des Servers.
Hat jemand eine Idee, woran das liegen kann?
Danke schon einmal im Voraus!
ich arbeite zurzeit an einem Bukkit-Plugin, welches Kommandos aus einer MySQL-Tabelle auslesen soll.
Dabei bekomme ich nun immer folgende Fehlermeldung:
Code:
18:42:35 [SEVERE] java.sql.SQLException: The url cannot be null
18:42:35 [SEVERE] at java.sql.DriverManager.getConnection(Unknown Source)
18:42:35 [SEVERE] at java.sql.DriverManager.getConnection(Unknown Source)
18:42:35 [SEVERE] at de.mrpixeldream.mysqlreader.SQLConnector.connect(SQLC
onnector.java:99)
18:42:35 [SEVERE] at de.mrpixeldream.mysqlreader.HandlerTask.run(HandlerTa
sk.java:41)
18:42:35 [SEVERE] at org.bukkit.craftbukkit.scheduler.CraftTask.run(CraftT
ask.java:53)
18:42:35 [SEVERE] at org.bukkit.craftbukkit.scheduler.CraftScheduler.mainT
hreadHeartbeat(CraftScheduler.java:345)
18:42:35 [SEVERE] at net.minecraft.server.MinecraftServer.q(MinecraftServe
r.java:510)
18:42:35 [SEVERE] at net.minecraft.server.DedicatedServer.q(DedicatedServe
r.java:213)
18:42:35 [SEVERE] at net.minecraft.server.MinecraftServer.p(MinecraftServe
r.java:474)
18:42:35 [SEVERE] at net.minecraft.server.MinecraftServer.run(MinecraftSer
ver.java:406)
18:42:35 [SEVERE] at net.minecraft.server.ThreadServerApplication.run(Sour
ceFile:539)
Auf den ersten Blick sieht es so aus, als ob ich keinen Server übergeben hätte, zu dem sich der Task verbinden soll. Dies kann aber nicht sein, da ich die Server-URL selbst übergeben habe.
Hier der Code meiner MySQL-Verbindungsklasse:
Java:
package de.mrpixeldream.mysqlreader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class SQLConnector
{
private boolean isInitialized;
private boolean isConnected;
private boolean isFailed;
private String server;
private String user;
private String password;
private String database;
private Connection con;
private Statement stmt;
private ResultSet result;
public SQLConnector()
{
try
{
Class.forName("com.mysql.jdbc.Driver");
}
catch (ClassNotFoundException e)
{
// TODO Automatisch generierter Erfassungsblock
e.printStackTrace();
}
isInitialized = false;
isConnected = false;
isFailed = false;
}
public SQLConnector(String server, String user, String password, String database)
{
isInitialized = true;
isConnected = false;
this.user = user;
this.password = password;
this.database = database;
if (!server.startsWith("jdbc:mysql://"))
{
server = ( "jdbc:mysql://" + server + "/" + database);
}
try
{
con = DriverManager.getConnection(server, user, password);
}
catch (SQLException e)
{
e.printStackTrace();
if (e.getMessage().contains("denied"))
{
System.err.println("[MySQL-Reader] CAN'T CONNECT! WRONG USER AND/OR PASSWORD!");
isFailed = true;
return;
}
return;
}
try
{
stmt = con.createStatement();
}
catch (SQLException e)
{
e.printStackTrace();
System.err.println("[MySQL-Reader] AN UNKNOWN ERROR OCCURRED!");
isFailed = true;
return;
}
isFailed = false;
isConnected = true;
return;
}
public boolean connect()
{
if (isConnected || isFailed || !isInitialized)
{
return false;
}
else
{
try
{
con = DriverManager.getConnection(server, user, password);
}
catch (SQLException e)
{
e.printStackTrace();
if (e.getMessage().contains("denied"))
{
System.err.println("[MySQL-Reader] CAN'T CONNECT! WRONG USER AND/OR PASSWORD!");
isFailed = true;
return false;
}
if (e.getMessage().contains("refused"))
{
System.err.println("[MySQL-Reader] CAN'T CONNECT! SERVER NOT AVAILABLE!");
isFailed = true;
return false;
}
return false;
}
return true;
}
}
public boolean disconnect()
{
if (!isConnected || isFailed || !isInitialized)
{
return false;
}
else
{
try
{
con.close();
}
catch (SQLException e)
{
e.printStackTrace();
System.err.println("[MySQL-Reader] CAN'T CLOSE CONNECTION!");
e.printStackTrace();
return false;
}
con = null;
return true;
}
}
public void init(String server, String user, String password, String database)
{
isInitialized = true;
isConnected = false;
if (!server.startsWith("jdbc:mysql://"))
{
server = ( "jdbc:mysql://" + server );
}
this.user = user;
this.password = password;
this.database = database;
}
public ResultSet query(String sql_query)
{
if (!isInitialized || isFailed || !isConnected)
{
System.err.println("[MySQL-Reader] NO CONNECTION FOUND!");
System.err.println("[MySQL-Reader] Fail: " + isFailed);
System.err.println("[MySQL-Reader] Connection: " + isConnected);
System.err.println("[MySQL-Reader] Init: " + isInitialized);
return null;
}
try
{
stmt = con.createStatement();
}
catch (SQLException e1)
{
e1.printStackTrace();
}
try
{
return this.stmt.executeQuery(sql_query);
}
catch (SQLException e)
{
System.err.println("[MySQL-Reader] CAN'T EXECUTE QUERY! ERROR:");
e.printStackTrace();
return null;
}
}
}
Als Server übergebe ich "mrpixeldream.de". Als Passwort und User die von mir eingestellten Daten des Servers.
Hat jemand eine Idee, woran das liegen kann?
Danke schon einmal im Voraus!