Я пытаюсь подключить мое основное приложение JavaRMI к базе данных Oracle.
Но я застрял с банкой ojdbc и ClassNotFoundException
.
Я не могу использовать некоторые IDE (учитель не хочет), поэтому я должен делать все с помощью блокнота и терминала.
Я использую Ant для компиляции приложения.
Есть структура:
- Сборка (содержит все .class и заглушки)
- lib / oracle / (содержит пакет oracle-full, найденный на сайте, с ojdbc7.jar)
- src (содержит все .java)
- build.xml (для муравья)
Я обнаружил, что должен использовать Class.forName("oracle.jdbc.driver.OracleDriver");
. Но не работал один.
В следующий раз я основал несколько человек, которые сказали, что мы должны установить путь к классам,
так что я делаю:
export CLASSPATH=$CLASSPATH:./lib/oracle/ojdbc7.jar
но ничего не происходит.
Я начинаю пробовать с Maven, но я сдаюсь, потому что зависимости не могут быть легко загружены (лицензия Oracle).
Смотрите за выдержкой из моего кода:
import java.rmi.server.*;
import java.net.*;
import java.rmi.*;
import java.sql.*;
import java.util.ArrayList;
public class ObjectFactoryCompte extends UnicastRemoteObject implements IObjectFactoryCompte {
private Connection dbConnection;
private ArrayList<Compte> instantiatedAccounts = new ArrayList<Compte>();
public static void main(String[] args) {
try {
ObjectFactoryCompte serveur = new ObjectFactoryCompte();
String nom = "compteFactory";
// Enregistrement
Naming.rebind(nom, serveur);
System.out.println("Serveur enregistré avec succès !");
} catch (Exception e) {
System.err.println("Erreur : " + e);
}
}
public ObjectFactoryCompte() throws RemoteException {
super();
try {
connectToDatabase();
} catch (ClassNotFoundException e) {
System.err.println("Impossible de trouver le .jar correspondant au jdbc Oracle.");
System.err.println("Fin de l'application.");
System.exit(2);
} catch (SQLException e) {
System.err.println("Une erreur s'est produite lors de la connexion à la base de données avec pour cause :");
e.printStackTrace();
System.err.println("Fin de l'application.");
System.exit(1);
}
}
private void connectToDatabase() throws ClassNotFoundException, SQLException {
Class.forName("oracle.jdbc.driver.OracleDriver");
String host = "jdbc:oracle:thin:@srv:port:thing";
String user = "usr";
String pwd = "pwd";
dbConnection = DriverManager.getConnection(host, user, pwd);
}
}
Можете ли вы помочь мне решить эту проблему, пожалуйста?
У меня заканчиваются идеи ...: /
Спасибо