Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

javax.naming.NoInitialContextException dengan mysql DataSource

Ini karena MysqlDataSource tidak mengimplementasikan javax.naming.spi.InitialContextFactory antarmuka.

Jika Anda tidak berada dalam wadah, Anda dapat menggunakan registri rmi. Sesuatu seperti:

try{
  startRegistry();
  InitialContext context = createContext();
  MysqlDataSource mysqlDs = new MysqlDataSource();
  context.rebind("jdbc/wczasy", mysqlDs);
} catch (Exception e) {
  System.out.println("Error while binding: " + e.getMessage());
  e.printStackTrace();
}


private static void startRegistry() throws RemoteException {
  LocateRegistry.createRegistry(1099);
  System.out.println("RMI registry ready.");
}

private static InitialContext createContext() throws NamingException {
  Properties env = new Properties();
  env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.rmi.registry.RegistryContextFactory");
  env.put(Context.PROVIDER_URL, "rmi://localhost:1099");
  InitialContext context = new InitialContext(env);
  return context;
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL 8.0 - Klien tidak mendukung protokol otentikasi yang diminta oleh server; pertimbangkan untuk memutakhirkan klien MySQL

  2. cara melakukan split pada kolom tabel sql

  3. Batasan kunci asing palsu gagal

  4. Ganti Ke Sintaks Kueri

  5. bagaimana cara menghemat waktu bukan tanggal dalam database melalui kueri sql