Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / проблема с "url connection" в JDBC / 16 сообщений из 16, страница 1 из 1
06.08.2007, 14:07:14
    #34707792
livehacker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с "url connection" в JDBC
Привет всем!
С помощью ant ( org.apache.tools.ant.taskdefs.JDBCTask ) устанавливаю JDBC соединение..
Проблема в том,что ,если я указываю алиас из tnsnames,то у меня вылетает Exception,о том что невозможно установить соединение,если пишу всё описание алиаса в в setUrl,то всё ok. В чём может быть причина? Вот подробности что я делаю:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
 public   class  JDBCTestConnection  extends  org.apache.tools.ant.taskdefs.JDBCTask {
   
   public   static   void  main (String [] args)
  {
      JDBCTestConnection jdbcTest =  new  JDBCTestConnection();
      jdbcTest.setProject( new  Project());
      jdbcTest.setDriver("oracle.jdbc.driver.OracleDriver");
      jdbcTest.setUserid("user");
      jdbcTest.setPassword("12345");
      jdbcTest.createClasspath().setLocation( new  File("c:\\lib\\JDBC\\10g\\ojdbc14.jar"));
      jdbcTest.setUrl("jdbc:oracle:thin:@localhost:1521:orcl");
      jdbcTest.getConnection();
  }

Если делать так,то при вызове метода jdbcTest.getConnection(); вылетает Exception:

Код: plaintext
1.
Exception in thread "main" java.sql.SQLException: Исключение ввода/вывода: The Network Adapter could not establish the connection
	at org.apache.tools.ant.taskdefs.JDBCTask.getConnection(JDBCTask.java: 329 )

Если так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
   public   static   void  main (String [] args)
  {
      JDBCTestConnection jdbcTest =  new  JDBCTestConnection();
      jdbcTest.setProject( new  Project());
      jdbcTest.setDriver("oracle.jdbc.driver.OracleDriver");
      jdbcTest.setUserid("user");
      jdbcTest.setPassword("12345");
      jdbcTest.createClasspath().setLocation( new  File("c:\\lib\\JDBC\\10g\\ojdbc14.jar"));
      
    jdbcTest.setUrl("jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)))");

      jdbcTest.getConnection();
  }
то конекш берётся и всё ok.

Я тестил алиас tnsping'ом ,всё ok. Подскажите,что я не так делаю?




Art is long life is short
...
Рейтинг: 0 / 0
06.08.2007, 15:32:39
    #34708150
no13
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с "url connection" в JDBC
Используется thin драйвер, который не имеет никакого представления о том, что есть какие-то установленные клиенты/сервера Oracle. Ему нужна переменная окружения TNS_ADMIN, указывающая на каналог, где лежит tnsnames.ora. Или описывайте параметры соединения целиком (есть несколько вариантов).

--
пиво и труд все перетрут
...
Рейтинг: 0 / 0
06.08.2007, 16:21:21
    #34708352
Timm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с "url connection" в JDBC
no13Используется thin драйвер, который не имеет никакого представления о том, что есть какие-то установленные клиенты/сервера Oracle. Ему нужна переменная окружения TNS_ADMIN, указывающая на каналог, где лежит tnsnames.ora
Не нужна.
2автор: покажи весь стектрейс.
без анта соединение через "@localhost:1521:orcl" получается?
...
Рейтинг: 0 / 0
06.08.2007, 16:35:17
    #34708400
livehacker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с "url connection" в JDBC
Timm no13Используется thin драйвер, который не имеет никакого представления о том, что есть какие-то установленные клиенты/сервера Oracle. Ему нужна переменная окружения TNS_ADMIN, указывающая на каналог, где лежит tnsnames.ora
Не нужна.
2автор: покажи весь стектрейс.



стэктрейс:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
"Exception in thread "main" java.sql.SQLException: Исключение ввода/вывода: The Network Adapter could not establish the connection
	at org.apache.tools.ant.taskdefs.JDBCTask.getConnection(JDBCTask.java: 329 )
	at ru.mypackages.JDBCTestConnection.main(JDBCTestConnection.java: 31 )
Caused by: java.sql.SQLException: Исключение ввода/вывода: The Network Adapter could not establish the connection
	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java: 112 )
	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java: 146 )
	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java: 255 )
	at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java: 387 )
	at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java: 414 )
	at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java: 165 )
	at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java: 35 )
	at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java: 801 )
	at org.apache.tools.ant.taskdefs.JDBCTask.getConnection(JDBCTask.java: 319 )
	...  1  more
--- Nested Exception ---
java.sql.SQLException: Исключение ввода/вывода: The Network Adapter could not establish the connection
	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java: 112 )
	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java: 146 )
	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java: 255 )
	at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java: 387 )
	at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java: 414 )
	at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java: 165 )
	at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java: 35 )
	at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java: 801 )
	at org.apache.tools.ant.taskdefs.JDBCTask.getConnection(JDBCTask.java: 319 )
	at ru.transsys.plugins.idea.rodl.core.utils.JDBCTestConnection.main(JDBCTestConnection.java: 31 )
Disconnected from the target VM, address: '127.0.0.1:1314', transport: 'socket'
Warning: classic VM not supported; client VM will be used

Process finished with exit code  1 

без анта соединение через "@localhost:1521:orcl" получается?
Ещё не пробовал..,сейчас гляну
...
Рейтинг: 0 / 0
06.08.2007, 16:39:51
    #34708418
livehacker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с "url connection" в JDBC
Да,сори,я там пакеты разные поставил,считайте что одинаковые (про ru.mypackage):))
...
Рейтинг: 0 / 0
06.08.2007, 17:07:52
    #34708522
livehacker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с "url connection" в JDBC
Мда...сделал тест с JDBC ,без анта, вывалился exception:
No suitable driver
буду искать правильные драйвера..
...
Рейтинг: 0 / 0
06.08.2007, 17:08:21
    #34708526
livehacker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с "url connection" в JDBC
livehackerМда...сделал тест с JDBC ,без анта, вывалился exception:
No suitable driver
буду искать правильные драйвера..

хотя как-то странно это всё..
...
Рейтинг: 0 / 0
06.08.2007, 17:19:06
    #34708560
no13
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с "url connection" в JDBC
livehackerМда...сделал тест с JDBC ,без анта, вывалился exception:
No suitable driver
буду искать правильные драйвера..
Class.forName("oracle.jdbc.OracleDriver");
или
-Djdbc.drivers=oracle.jdbc.OracleDriver
...
Рейтинг: 0 / 0
06.08.2007, 17:22:29
    #34708573
livehacker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с "url connection" в JDBC
no13 livehackerМда...сделал тест с JDBC ,без анта, вывалился exception:
No suitable driver
буду искать правильные драйвера..
Class.forName("oracle.jdbc.OracleDriver");
или
-Djdbc.drivers=oracle.jdbc.OracleDriver

брр.. Да я так и делал:


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
    public   void  test()
    {

        Connection connection =  null ;
         try  {
        // Load the JDBC driver
        String driverName = "oracle.jdbc.driver.OracleDriver";
         File file =  new  File("c:\\lib\\JDBC\\10g\\ojdbc14.jar");
         URL url1 =file.toURL();
         URL[] urls =  new  URL[]{url1};
            ClassLoader cl =  new  URLClassLoader(urls);
         Class .forName(driverName,false,cl);

        // Create a connection to the database
        String serverName = "localhost";
        String portNumber = "1521";
        String sid = "orcl";
        String url = "jdbc:oracle:thin:@" + serverName + ":" + portNumber + ":" + sid;
        String username = "user";
        String password = "12345";
        connection = DriverManager.getConnection(url, username, password);
    }  catch  (ClassNotFoundException e)
        {
            System.out.println(e.getMessage());
        // Could not find the database driver
    }  catch  (SQLException e) {
            System.out.println(e.getMessage());
        // Could not connect to the database
    }  catch  (MalformedURLException e) {
            e.printStackTrace();  //.
        }
    }

и вылетает SQLException с "непригодный драйвером"
...
Рейтинг: 0 / 0
06.08.2007, 18:12:19
    #34708734
Timm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с "url connection" в JDBC
livehacker
и вылетает SQLException с "непригодный драйвером"
еще бы. тебе сказали уже - Class.forName("oracle.jdbc.driver.OracleDriver"); + classpath.
...
Рейтинг: 0 / 0
06.08.2007, 18:26:25
    #34708774
livehacker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с "url connection" в JDBC
Timm livehacker
и вылетает SQLException с "непригодный драйвером"
еще бы. тебе сказали уже - Class.forName("oracle.jdbc.driver.OracleDriver"); + classpath.

Не понял. Я создал лоадер,загрузил класс oracle.jdbc.driver.OracleDriver..из ojdbc14.jar
Какой ещё classpath?
...
Рейтинг: 0 / 0
06.08.2007, 18:34:25
    #34708802
livehacker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с "url connection" в JDBC
livehacker Timm livehacker
и вылетает SQLException с "непригодный драйвером"
еще бы. тебе сказали уже - Class.forName("oracle.jdbc.driver.OracleDriver"); + classpath.

Не понял. Я создал лоадер,загрузил класс oracle.jdbc.driver.OracleDriver..из ojdbc14.jar
Какой ещё classpath?

чёрт,я жутко туплю,понято ..:)
...
Рейтинг: 0 / 0
06.08.2007, 19:02:42
    #34708884
livehacker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с "url connection" в JDBC
livehacker livehacker Timm livehacker
и вылетает SQLException с "непригодный драйвером"
еще бы. тебе сказали уже - Class.forName("oracle.jdbc.driver.OracleDriver"); + classpath.

Не понял. Я создал лоадер,загрузил класс oracle.jdbc.driver.OracleDriver..из ojdbc14.jar
Какой ещё classpath?

чёрт,я жутко туплю,понято ..:)

нет,не понял,обсмотрел гугл,посмотрел сановские форумы..
Но вот же я пишу:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
  public   void  test()
    {

        Connection connection =  null ;
         try  {
        // Load the JDBC driver
        String driverName = "oracle.jdbc.driver.OracleDriver";
         File file =  new  File("c:\\lib\\JDBC\\10g\\ojdbc14.jar");
         URL url1 =file.toURL();
         URL[] urls =  new  URL[]{url1};
            ClassLoader cl =  new  URLClassLoader(urls);
         Class .forName(driverName,false,cl);

...

}

Какой ещё classpath?..ведь я создал лоадер?..
...
Рейтинг: 0 / 0
06.08.2007, 19:20:13
    #34708916
livehacker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с "url connection" в JDBC
приконектился с jdbc,c помощью Driver.. ,но ошибка та же что и в анте..
Исключение ввода/вывода: The Network Adapter could not establish the connection
...
Рейтинг: 0 / 0
06.08.2007, 19:41:32
    #34708930
skipper13
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с "url connection" в JDBC
Протупил с с TNS_NAMES. Но! Заметил другую вещь. Формат УРЛа при конекте с SERVICE_NAME и SID различается.

jdbc:oracle:thin@//host:port/SERVICE_NAME
jdbc:oracle:thin@host:port/SID

В самом первом сообщнеии вы используете формат для SID а далее успешный вариант использует SERVICE_NAME. Если имена различаются, то возможно собака тут порылась.

Проверьте.

Детали из фака .
...
Рейтинг: 0 / 0
06.08.2007, 19:42:42
    #34708932
skipper13
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с "url connection" в JDBC
Блин, спешил и опять немного ошибся:
Oracle JDBC Frequently Asked Questions
* //<host>:<port>/<service>
* <host>:<port>:<SID>
* <TNSName>
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / проблема с "url connection" в JDBC / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]