2016-01-05 5 views
0

на Glassfish 4.1.1 Интерфейс администратора У меня настроен ресурс JDBC с именем jdbc/MySQL, связанный с пулом соединений JDBC с именем MySQL (сначала вручную изменен файл domain.xml). Пинг в пуле соединений успешно завершен. Все идет нормально.Ошибка поиска в MySQL JNDI Glassfish

Я изменил web.xml и добавил:

<resource-ref> 
<description>DB Connection</description> 
<res-ref-name>jdbc/MySQL</res-ref-name> 
<res-type>javax.sql.DataSource</res-type> 
<res-sharing-scope>Shareable</res-sharing-scope> 
</resource-ref> 

И GlassFish-web.xml:

<resource-ref> 
    <res-ref-name>jdbc/MySQL</res-ref-name> 
    <jndi-name>jdbc/MySQL</jndi-name> 
</resource-ref> 

Но в моем J2EE WAR, когда я делаю:

InitialContext ctx; 
DataSource ds; 

ctx = new InitialContext(); 
ds = (DataSource) ctx.lookup("java:comp/env/jdbc/MySQL"); 

Результат всегда сбой поиска.

Извлечение java: comp/env/не помогло.

Подсказка приветствуется! Спасибо.

С уважением джон

+0

Вы проверили, включен ли ресурс JDBC? Будет ли он работать, если вы удалите ресурс-ref из обоих файлов (поскольку имена JNDI в приложении и контейнере равны)? – OndrejM

ответ

0

Хорошо, я получил его на работу. Ресурс был включен, и модификация в web.xml и glassfish-web.xml на самом деле не нужна, я просто сделал это в моих многочисленных попытках исправить это.

Но вы знаете, в чем причина? Слэш в имени JNDI. Я узнал сегодня, когда я нажал кнопку сохранения на панели администратора ресурса и получил ошибку «ресурс jndi% 2FMySQL не существует». Я воспринял это как подсказку и назвал ресурс только «mysql». Это фиксировало это :) Может кто-то подтвердить это на стеклянной рыбке 4.1.1.?

Из-за ошибки на панели администратора с добавлением новых ресурсов мне пришлось сначала вставить ее в domain.xml вручную. Может, в этом причина? Но ресурсы по умолчанию также сохраняются с косой чертой ...

КПП. поиск в настоящее время:

ctx.lookup("mysql"); 
Смежные вопросы