2013-04-16 8 views
1

У нас есть персональная java-библиотека , которая развернута на сервере tomcat (v5.5 & v6). Эта библиотека разделяется многими веб-приложениями, поэтому она была развернута в каталоге share/lib в tomcat.Как найти ресурс JDBC (JDBC)?

Исключительно, мне нужно создать новый класс в этой библиотеке, которая ищет источник данных jdbc через JNDI.

Для этого, вот мой код:

Context initCtx = new InitialContext(); 
Context envCtx = (Context) initCtx.lookup("java:comp/env"); 
DataSource dataSource = (DataSource) envCtx.lookup("jdbc/corp.xx.xx.xxxxDS"); 

Все контекст инстанцируются без проблем. Но когда он ищет источник данных jdbc, у меня есть исключение: Имя jdbc не найдено в контексте

Мы не находимся в webapp, это проблема? Можно ли объявить context.xml с ResourceLink? как ?

NB: JNDI выставиться в server.xml (ресурс в GlobalNamingResources)

+0

Когда вы пишете «pb», вы, возможно, имеете в виду «проблему»? Пожалуйста, не рассматривайте это место, как мобильный телефон. – EJP

ответ

2
<Context ...> 
    ... 
    <ResourceLink name="linkToGlobalResource" 
      global="simpleValue" 
      type="java.lang.Integer" 
    ... 
</Context> 

Где имя новое имя (имя по отношению к Java: COMP/окр), глобальный является глобальное имя JNDI настроен в server.xml

Так, из кода, посмотреть linkToGlobalResource, который даст вам связанный глобальный ресурс

Ссылка: http://tomcat.apache.org/tomcat-5.5-doc/config/context.html#Resource_Links

Ответ Обновлено:

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

+0

да, но я хотел бы знать, можно ли добавить ресурс jndi в веб-контекст для общей библиотеки. В противном случае я должен добавить контекст в каждое веб-приложение, которое использовало библиотеку :( – MychaL

+0

Пожалуйста, проверьте обновленный ответ. –

Смежные вопросы