powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Проблема с JDBC в Glassfish
25 сообщений из 81, страница 1 из 4
Проблема с JDBC в Glassfish
    #39478055
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стал знакомиться с построением сайтов в Java. Попробовал Tomcat, потом решил, что для изучения JSF мне будет удобнее что-то другое, поставил Glassfish 4.1.2, определил JDBC-пул и ресурс jdbc/testORA для подключения к DB.

Пример 1 работает:
Код: html
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.
<%@page language="java" contentType="text/html; charset=UTF-8"%>
/.. вырезано ../
<%
  InitialContext ctx = new InitialContext();
  DataSource ds = (DataSource) ctx.lookup("jdbc/testORA");
  Connection con = ds.getConnection();
  String someQuery = "select sysdate foo, 'sysdate' bar from dual";
  Statement stmt = con.createStatement();
  ResultSet rs = stmt.executeQuery(someQuery);
%>
<html>
  <head>
    <title>DB (Ora) Test</title>
  </head>
  <body>
  <h2>Results</h2>
<% while(rs.next()) { %>
    Foo <%= rs.getObject(1).toString()%> <br/>
    Bar <%= rs.getObject(2).toString()%> <br/>
<% }
  rs.close();
  con.close();
%>
  </body>
</html>



Пример 2 в Glassfish не работает:
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
<%@page language="java" contentType="text/html; charset=UTF-8"%>
<%@ page import = "java.io.*,java.util.*,java.sql.*"%>
<%@ page import = "javax.servlet.http.*,javax.servlet.*" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<sql:query var="rs" dataSource="jdbc/testORA">
select sysdate foo, 'sysdate' bar
from dual
</sql:query>

<html>
  <head>
    <title>DB (Ora) Test</title>
  </head>
  <body>
  <h2>Results</h2>

<c:forEach var="row" items="${rs.rows}">
    Foo ${row.foo}<br/>
    Bar ${row.bar}<br/>
</c:forEach>

  </body>
</html>


Оба примера работали под Tomcat'ом, но под Glassfish'ем второй - нет. Я получаю
Glassfishexception:
javax.servlet.ServletException: javax.servlet.jsp.JspException: Unable to get connection, DataSource invalid: "java.sql.SQLException: No suitable driver found for jdbc/testORA"

root cause:
javax.servlet.jsp.JspException: Unable to get connection, DataSource invalid: "java.sql.SQLException: No suitable driver found for jdbc/testORA"

С DB2 та же история.

Итак, дело не в том, что я не положил драйвера domain1/lib (я пробовал и app/WEB-INF/lib) и не в опечатках. Не вижу ничего полезного (для меня) в stack trace. DataSource как-то не так определяется?
...
Рейтинг: 0 / 0
Проблема с JDBC в Glassfish
    #39478058
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стектрейс не обязан показывать все шаги Classloader.

Помедитируй над значением System.getProperty("java.class.path") для Tomcat и для Glassfish.
...
Рейтинг: 0 / 0
Проблема с JDBC в Glassfish
    #39478060
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это поможет мне увидеть разницу между
DataSource ds = (DataSource) ctx.lookup("jdbc/testORA");
и
<sql:query var="rs" dataSource="jdbc/testORA">
?
Первое работает, второе нет, как с этим связан System.getProperty("java.class.path")?
...
Рейтинг: 0 / 0
Проблема с JDBC в Glassfish
    #39478061
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я все таки настаиваю чтобы ты просмотрел нужное проперти в двух конфигурациях. 99% ошибок поиска
драйвера сыпятся просто на неверной конфигурации путей поиска для ClassLoader

И еще... наблюдение. Обычно сообщение "No suitable driver found for " завершается не JNDI алиасом а
строкой "jdbc:oracle:thin....."

Проверь.
...
Рейтинг: 0 / 0
Проблема с JDBC в Glassfish
    #39478090
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor MetelitsaЭто поможет мне увидеть разницу между
DataSource ds = (DataSource) ctx.lookup("jdbc/testORA");
и
<sql:query var="rs" dataSource="jdbc/testORA">


Для sql:query и прочего sql:XXX путь указывается относительно java:comp/env
И в примерах Томката он тоже есть. Вот из их доки на сайте:

Код: java
1.
2.
3.
4.
5.
6.
7.
// Obtain our environment naming context
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");

// Look up our data source
DataSource ds = (DataSource)
  envCtx.lookup("jdbc/EmployeeDB");
...
Рейтинг: 0 / 0
Проблема с JDBC в Glassfish
    #39478091
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то плохо копируется текст из PDF-ки по JSTL.

В общем, если по указанной в dataSource строке ничего в JNDI не найдено, то делается предположение, что это JDBC URL и еще чуть-чуть:
Код: java
1.
url[,[driver][,[user][,password]]]
...
Рейтинг: 0 / 0
Проблема с JDBC в Glassfish
    #39478093
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здесь у меня меня нет понимания, как работает и что происходит. Причём за свою жизнь я прочитал тонны книжек всяких учебников и документации на разные темы, обычно не встречая больших сложностей, но связанное с Java EE - это нечто особенное. Поэтому я хотел сделать минимальнейшую простейшую конфигурацию и разбираться постепенно, но даже и здесь провалился.
...
Рейтинг: 0 / 0
Проблема с JDBC в Glassfish
    #39478097
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OK,
java.class.path= <%=System.getProperty("java.class.path") %>
даёт
java.class.path= c:\apache-tomcat-8.5.15\bin\bootstrap.jar;c:\apache-tomcat-8.5.15\bin\tomcat-juli.jar
и
java.class.path= C:/glassfish4/glassfish/modules/glassfish.jar;C:/glassfish4/glassfish/lib/monitor/flashlight-agent.jar
соответственно.

о чём это говорит?

Для sql:query и прочего sql:XXX путь указывается относительно java:comp/env
И в примерах Томката он тоже есть. Вот из их доки на сайте:

OK, а в синтаксисе
Код: html
1.
2.
3.
4.
<sql:query var="rs" dataSource="jdbc/testORA">
select sysdate foo, 'sysdate' bar
from dual
</sql:query


где место
Код: java
1.
2.
3.
4.
5.
6.
7.
// Obtain our environment naming context
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");

// Look up our data source
DataSource ds = (DataSource)
  envCtx.lookup("jdbc/EmployeeDB");


?
...
Рейтинг: 0 / 0
Проблема с JDBC в Glassfish
    #39478098
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Некоторые вещи, по началу, лучше просто принять как данность. Когда дойдешь до изучения CD/DI все встанет на свои места.
...
Рейтинг: 0 / 0
Проблема с JDBC в Glassfish
    #39478099
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЯ все таки настаиваю чтобы ты просмотрел нужное проперти в двух конфигурациях. 99% ошибок поиска
драйвера сыпятся просто на неверной конфигурации путей поиска для ClassLoader

Почему для DataSource ds = (DataSource) ctx.lookup("jdbc/testORA"); путь поиска оказывается верным, и одновременно с этим
для <sql:query var="rs" dataSource="jdbc/testORA">тот же путь оказывается неверным?

И еще... наблюдение. Обычно сообщение "No suitable driver found for " завершается не JNDI алиасом а
строкой "jdbc:oracle:thin....."
Проверь.
Верно ли я скопировал сообщение с экрана? Да.
...
Рейтинг: 0 / 0
Проблема с JDBC в Glassfish
    #39478102
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettНекоторые вещи, по началу, лучше просто принять как данность. Когда дойдешь до изучения CD/DI все встанет на свои места.
Именно этот подход я и принял. Кстати, эта пресловутая DI - вещь, которая меня, smalltalk-программиста, особенно сильно бесит. Поэтому я с попытками чтения книжек по Spring временно завязал и пытаюсь "просто" с JSF начать.
...
Рейтинг: 0 / 0
Проблема с JDBC в Glassfish
    #39478103
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так понимаю, в первом случае поиск осуществляется в каталоге global, а во втором в comp (компонент). В первом он есть, во втором его нет.
...
Рейтинг: 0 / 0
Проблема с JDBC в Glassfish
    #39478104
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Проблема с JDBC в Glassfish
    #39478106
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor MetelitsaДля sql:query и прочего sql:XXX путь указывается относительно java:comp/env
И в примерах Томката он тоже есть. Вот из их доки на сайте:

OK, а в синтаксисе
Код: html
1.
2.
3.
4.
<sql:query var="rs" dataSource="jdbc/testORA">
select sysdate foo, 'sysdate' bar
from dual
</sql:query


где место
Код: java
1.
2.
3.
4.
5.
6.
7.
// Obtain our environment naming context
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");

// Look up our data source
DataSource ds = (DataSource)
  envCtx.lookup("jdbc/EmployeeDB");


?

В синтаксисе
Код: html
1.
2.
3.
4.
<sql:query var="rs" dataSource="jdbc/testORA">
select sysdate foo, 'sysdate' bar
from dual
</sql:query>



место
Код: java
1.
2.
3.
// Obtain our environment naming context
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");



делается неявно. Мы просто должны помнить, что путь указывается относительно java:comp/env. И такого "мы просто должны помнить" в мире джавы просто дофига. Особенно в Спринге. А может, не особенно. Просто я в Спринге дольше варился.
...
Рейтинг: 0 / 0
Проблема с JDBC в Glassfish
    #39478110
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Alexander A. Sak]Victor Metelitsaпропущено...
синтаксисе
Код: html
1.
2.
3.
4.
<sql:query var="rs" dataSource="jdbc/testORA">
select sysdate foo, 'sysdate' bar
from dual
</sql:query>



место
Код: java
1.
2.
3.
// Obtain our environment naming context
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");



делается неявно. Мы просто должны помнить, что путь указывается относительно java:comp/env. И такого "мы просто должны помнить" в мире джавы просто дофига. Особенно в Спринге. А может, не особенно. Просто я в Спринге дольше варился.
Про то, что в конечном счёте генерируется Java-код, мне рассказывать не надо. Я спрашиваю, что с этим делать:
Код: html
1.
2.
3.
4.
<sql:query var="rs" dataSource="jdbc/testORA">
select sysdate foo, 'sysdate' bar
from dual
</sql:query>


Может, нужен параметр какой-то дополнительный,
a la <sql:query var="rs" dataSource="jdbc/testORA" initialContext="java:comp/env">,
или другой синтаксис указания ссылки,
a la <sql:query var="rs" dataSource="java:comp/env ==> jdbc/testORA" >,
или нужно прописывание чего-то дополнительного в конфигурацию Glassfish,
или ...
...
Рейтинг: 0 / 0
Проблема с JDBC в Glassfish
    #39478124
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor MetelitsaСтал знакомиться с построением сайтов в Java. Попробовал Tomcat, потом решил, что для изучения JSF мне будет удобнее что-то другое, поставил Glassfish 4.1.2
Божечки ты мой, какие страсти. Аж сердце ёкает, когда читаешь. Фтопку JSF и Glassfish. Это убогие, глючные, переусложненные технологии.
JHipster, Spring Boot, Bootstrap, HTTP/2, DHTML, CSS - вот что вам нужно изучать для "построения сайтов в Java".
...
Рейтинг: 0 / 0
Проблема с JDBC в Glassfish
    #39478129
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor MetelitsaЗдесь у меня меня нет понимания, как работает и что происходит. Причём за свою жизнь я прочитал тонны книжек всяких учебников и документации на разные темы, обычно не встречая больших сложностей, но связанное с Java EE - это нечто особенное. Поэтому я хотел сделать минимальнейшую простейшую конфигурацию и разбираться постепенно, но даже и здесь провалился.
Java EE - это скопление самых нудных и ненужных стандартов. Это шлак в мире Java. Карго-культ. И я тоже когда-то
пытался делать минимальнейшие конфигурации и тоже огребал по полной.

Современные стартапы уже летают без Java EE а это вызывает зависть и нездоровые сомнения в линии партии.
...
Рейтинг: 0 / 0
Проблема с JDBC в Glassfish
    #39478130
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если выбирать лучший инструмент для внутрикорпоративных сайтов, то это будет Smalltalk (Cincom VisualWorks или VAST) + Seaside. Разумеется, при этом AJAX и CSS никто не отменял. Вопрос не в этом.

Как бы то ни было, оно заработало - после того, как я в web.xml приложения заменил
<res-type>javax.sql.DataSource</res-type>
на
<res-type>javax.sql.ConnectionPoolDataSource</res-type>.

Причём в определениях ресурсов для домена везде используется javax.sql.DataSource.
...
Рейтинг: 0 / 0
Проблема с JDBC в Glassfish
    #39478131
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot mayton]Victor MetelitsaJava EE - это скопление самых нудных и ненужных стандартов. Это шлак в мире Java. Карго-культ. И я тоже когда-то
пытался делать минимальнейшие конфигурации и тоже огребал по полной.

Современные стартапы уже летают без Java EE а это вызывает зависть и нездоровые сомнения в линии партии.

Народ ринулся на JS-фреймворки и клепает одностраничные сайты - а за одностраничность мне хочется убивать. С одного зла переключились на другое.
...
Рейтинг: 0 / 0
Проблема с JDBC в Glassfish
    #39478132
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Упс.
...
Рейтинг: 0 / 0
Проблема с JDBC в Glassfish
    #39478133
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor MetelitsaНарод ринулся на JS-фреймворки и клепает одностраничные сайты - а за одностраничность мне хочется убивать. С одного зла переключились на другое.
Нет, уж давайте плодить унылое говно, которое на каждый клик перезагружает страницу.
...
Рейтинг: 0 / 0
Проблема с JDBC в Glassfish
    #39478135
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonJava EE - это скопление самых нудных и ненужных стандартов. Это шлак в мире Java. Карго-культ. И я тоже когда-то
пытался делать минимальнейшие конфигурации и тоже огребал по полной.
Аналогично. Послушаешь всяких мудаков писателей на форумах, и подумаешь, а может JEE уже и не так плох. И потом, блин, мучаешься с этим барахлом. Всё. Хватит. Только Spring, только DHTML.
...
Рейтинг: 0 / 0
Проблема с JDBC в Glassfish
    #39478157
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczVictor MetelitsaНарод ринулся на JS-фреймворки и клепает одностраничные сайты - а за одностраничность мне хочется убивать. С одного зла переключились на другое.
Нет, уж давайте плодить унылое говно, которое на каждый клик перезагружает страницу.

Даже JSF поддерживает AJAX, так что перезагрузка страницы не требуется. Кроме того, поменьше графики, рекламы и js-файлов - и перезагрузка не так страшна.
...
Рейтинг: 0 / 0
Проблема с JDBC в Glassfish
    #39478162
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А кто запрещает использовать JEE в качестве бэкенда для того же Angilar?
...
Рейтинг: 0 / 0
Проблема с JDBC в Glassfish
    #39478164
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вам никто. А я буду JSF копать.
...
Рейтинг: 0 / 0
25 сообщений из 81, страница 1 из 4
Форумы / Java [игнор отключен] [закрыт для гостей] / Проблема с JDBC в Glassfish
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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