Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java tools & IDE's > Как создать другой сервер в NetBeans


Автор: skif18 8.6.2008, 12:59
Мне надо в NetBeans обратиться к базе на Postgres. Подключение создал. Работает. Запрос отредактил, таблицу подключил. Но когда запускаю прогу то :

Код

[TopLink Info]: 2008.06.08 12:53:49.984--ServerSession(28893273)--TopLink, version: Oracle TopLink Essentials - 2.0 (Build b58g-fcs (09/07/2007))
Exception in thread "AWT-EventQueue-0" Local Exception Stack: 
Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0 (Build b58g-fcs (09/07/2007))): oracle.toplink.essentials.exceptions.DatabaseException
Internal Exception: org.postgresql.util.PSQLException: Подсоединение отклонено. Проверьте что хост и порт указаны правильно и что postmaster принимает TCP/IP-подсоединения.
Error Code: 0


Подозреваю что дело в сервере стандартном. Или не прав? Не давно пересел на NetBeans c Eclipse...

Автор: Vasay 8.6.2008, 14:09
Цитата

Запускается GlassFish, а надо Postgres


Ну, вопервых GlassFish - это сервер приложений, Postgres - база данных...


А теперь подробней что и как хочешь сделать?

Автор: skif18 8.6.2008, 20:14
В Services NetBeans есть раздел Databases. Свою на Постгресе я подключаю. Потом подключаю в jTable. Но при запуске всего приложения вылезает вышеописаная ошибка. При чем вообще там Oracle? и что за postmaster в NetBeans?

Автор: powerOn 8.6.2008, 22:01
Я так понимаю что ты используешь JPA для соединения с БД. Oracal тут притом, что NetBeans поставляется с Toplink реализацией JPA, которую разработал Oracle. Но это не суть важно, поскольку не влияет на соединение. 
Что можно проверить:
1) Поднята ли БД.
2) Настройки соединения в файле persistence.xml (правильно ли указан url подключения к БД).
3) Наличие драйвера для соединения с Postgres в classpath твоего приложения (т.е. подключил ли ты библиотеку с драйвером к проекту)

Автор: skif18 10.6.2008, 13:50
1) БД поднята
Под NetBeans - Services - Databases подлючение есть и работает(все отображается, запросы работают)
2)
Код

  <?xml version="1.0" encoding="UTF-8" ?> 
- <persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
- <persistence-unit name="cbitPU" transaction-type="RESOURCE_LOCAL">
  <provider>oracle.toplink.essentials.PersistenceProvider</provider> 
- <properties>
  <property name="toplink.jdbc.user" value="postgres" /> 
  <property name="toplink.jdbc.password" value="*****" /> 
  <property name="toplink.jdbc.url" value="jdbc:postgresql://localhost:5432/cbit" /> 
  <property name="toplink.jdbc.driver" value="org.postgresql.Driver" /> 
  </properties>
  </persistence-unit>
  </persistence>

3) JDBC драйвер в проекте сидит как библиотека. в classpath присутствует.

Автор: Vasay 10.6.2008, 15:31
skif18, 

Попробуй создать соединение с БД на сервере (через админку сервера). Там же можно будет проверить его на работоспособность.


И попробуй положить драйвер БД в папку твоего домена/lib/ext/


Автор: skif18 12.6.2008, 10:40
Vasay,  все работает. Вообще проект скинул в корневой и туда же драйвера. И в папку домена/lib/ext/ тоже. Буду возиться ещё... Если есть идеи просьба выдавать! smile 

Автор: skif18 12.6.2008, 11:10
Код

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: An exception occured while creating a query in EntityManager
        at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerImpl.createQuery(EntityManagerImpl.java:209)


Код

cbitPUEntityManager = javax.persistence.Persistence.createEntityManagerFactory("cbitPU").createEntityManager();
        sPotrQuery = cbitPUEntityManager.createQuery("SELECT s.kpl,s.kpot,s.npot FROM SPotr s");
        sPotrList = sPotrQuery.getResultList();

org.jdesktop.swingbinding.JTableBinding jTableBinding = org.jdesktop.swingbinding.SwingBindings.createJTableBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, sPotrList, jTable1);
        org.jdesktop.swingbinding.JTableBinding.ColumnBinding columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${kpl}"));
        columnBinding.setColumnName("Kpl");
        columnBinding.setColumnClass(String.class);
        columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${kpot}"));
        columnBinding.setColumnName("Kpot");
        columnBinding.setColumnClass(String.class);
        columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${npot}"));
        columnBinding.setColumnName("Npot");
        columnBinding.setColumnClass(String.class);
        bindingGroup.addBinding(jTableBinding);
        jTableBinding.bind();


Этот код создам мастером в Table Contens у jTable1. Когда выбрал Binding Source то в закладке Columns в поле Experssion появились значения полей таблицы. А при запуске все рано не пашет... smile 

Автор: Vasay 12.6.2008, 11:17
skif18, 

Идеи такие - убрать всю инфу о соединении из файлов проекта и использовать data-source созданный на сервере (потому что мы знаем что он 100% работает)


Посмотреть лог сервера через админку или по лог-файлам (вдруг, что там еще интересного написано)

Может быть должно быть не
transaction-type="RESOURCE_LOCAL"
а
transaction-type="JTA"
?

Добавлено через 8 минут и 20 секунд
skif18, 

Проблема может быть и с запросом, что ИМХО маловероятно.

Скорей всего проблема с cbitPUEntityManager

Ты руками можешь разбить код на отдельное создание EntityManagerFactory и EntityManager? 

cbitPUEntityManagerFactory = javax.persistence.Persistence.createEntityManagerFactory("cbitPU");

cbitPUEntityManager = cbitPUEntityManagerFactory.createEntityManager();

Мне кажется, что после этого он выругается на невозможность создать EntityManager


Кстати, а не возвращает ли 
cbitPUEntityManager = javax.persistence.Persistence.createEntityManagerFactory("cbitPU").createEntityManager();
NULL ?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)