Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> jboss<->jdbc<->Oracle 
V
    Опции темы
eXcile
Дата 4.5.2007, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 168
Регистрация: 8.2.2007

Репутация: нет
Всего: 5



Всем доброго кодинга

Есть следующая задача: Нужно через jboss работать с Oracle через jdbc. В jboss хорошо разобрал tomcat, но дальше черная дыра, подскажите что можно почитать или какие-нибудь примеры. 
И еще пишу все в eclipse отладка jboss только через консоль и логи, есть какое-нибудь альтернативное средство?
--------------------
Не становитесь рабом шаблона [Винсент Ван Гог]
PM MAIL   Вверх
AntonSaburov
Дата 4.5.2007, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 8
Всего: 118



В двух словах сложно, но попробую smile

1. Определить JNDI ресурс в web.xml. Наподобие такого - обратить внимание на последние таги -  <resource-ref>

Код

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE web-app PUBLIC
        "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

    <servlet>
        <servlet-name>Controller</servlet-name>
        <servlet-class>com.jbossatwork.ControllerServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>Controller</servlet-name>
        <url-pattern>/controller/*</url-pattern>
    </servlet-mapping>

    <resource-ref>
        <res-ref-name>jdbc/JBossAtWorkDS</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
    </resource-ref>

</web-app>


2. Определить файл $JBOSS_HOME/server/default/deploy/oracle-ds.xml

Код

<datasources>
−
    <local-tx-datasource>
<jndi-name>OracleDS</jndi-name>
<connection-url>jdbc:oracle:thin:@youroraclehost:1521:yoursid</connection-url>
−
    <!--


        Here are a couple of the possible OCI configurations.
        For more information, see http://otn.oracle.com/docs/products/oracle9i/doc_library/release2/java.920/a96654/toc.htm

    <connection-url>jdbc:oracle:oci:@youroracle-tns-name</connection-url>
        or
    <connection-url>jdbc:oracle:oci:@(description=(address=(host=youroraclehost)(protocol=tcp)(port=1521))(connect_data=(SERVICE_NAME=yourservicename)))</connection-url>

        Clearly, its better to have TNS set up properly.
     
-->
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<user-name>x</user-name>
<password>y</password>
−
    <exception-sorter-class-name>
org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter
</exception-sorter-class-name>
</local-tx-datasource>
</datasources>


3. Вот пример для получения ресурса JNDI
Код

package com.jbossatwork.util;

import javax.naming.*;
import javax.sql.*;

public class ServiceLocator {
    private ServiceLocator(  ) {  }

    public static DataSource getDataSource(String dataSourceJndiName)
                  throws ServiceLocatorException {

        DataSource dataSource = null;
        try {
            Context ctx = new InitialContext(  );
            dataSource = (DataSource) ctx.lookup(dataSourceJndiName);

        } catch (ClassCastException cce) {
            throw new ServiceLocatorException(cce);
        } catch (NamingException ne) {
            throw new ServiceLocatorException(ne);
        }
        return dataSource;
    }
}


Но это в самых общих чертах - по сути просто направление куда копать дальше.
PM MAIL WWW ICQ   Вверх
eXcile
Дата 7.5.2007, 07:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 168
Регистрация: 8.2.2007

Репутация: нет
Всего: 5



Вроде логика понятна, а как отлаживать? Т.е. я пишу приложение, разворачиваю на jboss и потом в логах смотреть exception?
А в jdbc предусмотрен reconnect при обрыве связи или надо это отлавливать?
--------------------
Не становитесь рабом шаблона [Винсент Ван Гог]
PM MAIL   Вверх
tux
Дата 7.5.2007, 07:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 74
Всего: 132



Цитата(eXcile @  7.5.2007,  07:25 Найти цитируемый пост)
Вроде логика понятна, а как отлаживать? Т.е. я пишу приложение, разворачиваю на jboss и потом в логах смотреть exception?

Можно отлаживать используя механизм удаленной отладки JPDA: http://java.sys-con.com/read/44918.htm?CFI...D5415F39021CFFC.

Цитата(eXcile @  7.5.2007,  07:25 Найти цитируемый пост)
А в jdbc предусмотрен reconnect при обрыве связи или надо это отлавливать? 

Не предусмотрен, но его может предусматривать пул соединений, используемый JBoss.
PM MAIL Skype GTalk Jabber YIM   Вверх
eXcile
Дата 7.5.2007, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 168
Регистрация: 8.2.2007

Репутация: нет
Всего: 5



Начал было кодить, а оказалось дров jdbc то нету. Подскажите плиз где скачать? Какую версию лучше? Испольуется Oracle 8x Jboss 4.0
--------------------
Не становитесь рабом шаблона [Винсент Ван Гог]
PM MAIL   Вверх
eXcile
Дата 7.5.2007, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 168
Регистрация: 8.2.2007

Репутация: нет
Всего: 5




Вылетает такой exception

org.jboss.deployment.DeploymentException: Error during deploy; - nested throwable: (javax.naming.NamingException: resource-ref: jdbc/OracleDS has no valid JNDI binding. Check the jboss-web/resource-ref.)

web.xml
Код

   <resource-ref>
        <res-ref-name>jdbc/OracleDS</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
    </resource-ref>

--------------------
Не становитесь рабом шаблона [Винсент Ван Гог]
PM MAIL   Вверх
tux
Дата 7.5.2007, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 74
Всего: 132



Цитата(eXcile @  7.5.2007,  13:34 Найти цитируемый пост)
Check the jboss-web/resource-ref

JBoss говорит о jboss-web.xml, а не о web.xml. В jboss-web должна быть описана связь между физическим именем источника данных в JNDI и его логическим именем в web.xml.
PM MAIL Skype GTalk Jabber YIM   Вверх
eXcile
Дата 10.5.2007, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 168
Регистрация: 8.2.2007

Репутация: нет
Всего: 5



Сделал jboss-web.xml, теперь все работает. Всем спасибо за обсуждение!  smile 
--------------------
Не становитесь рабом шаблона [Винсент Ван Гог]
PM MAIL   Вверх
superVad
Дата 10.5.2007, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 1
Всего: 15



Обьясните пож. зачем писать такое в web.xml:

Код

 <resource-ref>
        <res-ref-name>jdbc/JBossAtWorkDS</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
    </resource-ref>


Просто у меня без него работает?
PM MAIL   Вверх
tux
Дата 10.5.2007, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 74
Всего: 132



PM MAIL Skype GTalk Jabber YIM   Вверх
Foo
Дата 10.5.2007, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 20.10.2006

Репутация: 1
Всего: 3



Я в эклипсе для отладки на сервере испоьзую MyEclipse который устанавливается на Eclipse, очень на мой взгляд удобно, я правда для отладки OC4J использую, но MyEclipse поддерживает отладку практически всех современных серверов.
--------------------
qip
PM MAIL   Вверх
eXcile
Дата 11.5.2007, 05:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 168
Регистрация: 8.2.2007

Репутация: нет
Всего: 5



Цитата(Foo @  10.5.2007,  20:06 Найти цитируемый пост)
Я в эклипсе для отладки на сервере испоьзую MyEclipse который устанавливается на Eclipse


Foo можно поподробней, MyEclipse это плагин к Eclipse? И что за OC4J? 
--------------------
Не становитесь рабом шаблона [Винсент Ван Гог]
PM MAIL   Вверх
superVad
Дата 11.5.2007, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 1
Всего: 15



MyEclipse вроде платный

поправте если я не прав
PM MAIL   Вверх
Foo
Дата 27.5.2007, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 20.10.2006

Репутация: 1
Всего: 3



OC4J - oracle server for java
MyEclipse - да, он платный. И это не плагин, он устанавливается поверх эклипса и у эклипса появляется пачка приятных фичей. Стоит вроде не очень дорого 30$ обычная версия и 50 професионал едишн.

[офтоп]Но в нем очень много всего полезного (редакторы и тулзы для JSP, JSF, EJB, JS, для большинства современных фреймворков; это не говоря о мелких редакторах типа xml; ну и поддержка отладки для практически всехсовременных апликеэйшн серверов). Более подробно тут    
http://www.myeclipseide.com/module-htmlpag...play-pid-1.html [/офтоп]

Но если MyEclipse изза платности не катит то в эклипсе есть удаленный дебаг и так. Незнаю как для другихсерверов, для OC4J просто при его запуске указываеш специальные опции для удаленного дебага, потом в эклипсе настраиваеш удаленный дебаг, там минимум настроек порт для дебага и хост.

Это сообщение отредактировал(а) Foo - 27.5.2007, 18:18
--------------------
qip
PM MAIL   Вверх
poltora
Дата 9.8.2007, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 6.8.2007

Репутация: нет
Всего: нет



Цитата(tux @ 7.5.2007,  13:58)
Цитата(eXcile @  7.5.2007,  13:34 Найти цитируемый пост)
Check the jboss-web/resource-ref

JBoss говорит о jboss-web.xml, а не о web.xml. В jboss-web должна быть описана связь между физическим именем источника данных в JNDI и его логическим именем в web.xml.

каким образом она должна описываться - каков формат?
а если речь идет не о веб-модуле а о корпоративных бинах - то в каком фйле?
jboss.xml, jbosscmp-jdbc.xml ?
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0565 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.