2016-08-29 4 views
1

Я перенес файл WAR из Tomcat в Websphere. Файл WAR отлично работает в Tomcat и подключается к базе данных с именем jndi. Я настроил такую ​​же конфигурацию jdbc в websphere. Когда я пытаюсь подключиться к базе данных с помощью приложения я получаю ошибки, как это:Имя файла Websphere WAR не найдено Исключение

000000d0 SystemOut  O javax.naming.NameNotFoundException: Name not found in context "java:". 
at com.ibm.ws.naming.ipbase.NameSpace.getParentCtxInternal(NameSpace.java:1969) 
at com.ibm.ws.naming.ipbase.NameSpace.retrieveBinding(NameSpace.java:1376) 
at com.ibm.ws.naming.ipbase.NameSpace.lookupInternal(NameSpace.java:1219) 
at com.ibm.ws.naming.ipbase.NameSpace.lookup(NameSpace.java:1141) 
at com.ibm.ws.naming.urlbase.UrlContextImpl.lookupExt(UrlContextImpl.java:1436) 
at com.ibm.ws.naming.java.javaURLContextImpl.lookupExt(javaURLContextImpl.java:477) 
at com.ibm.ws.naming.java.javaURLContextRoot.lookupExt(javaURLContextRoot.java:485) 
at com.ibm.ws.naming.java.javaURLContextRoot.lookup(javaURLContextRoot.java:370) 
at org.apache.aries.jndi.DelegateContext.lookup(DelegateContext.java:161) 
at javax.naming.InitialContext.lookup(InitialContext.java:436) 
at ConnPoolServlet.getConnection(ConnPoolServlet.java:65) 
at ConnPoolServlet.service(ConnPoolServlet.java:25) 

Можете ли вы предложить, как сделать мой файл WAR для работы с JNDI именем в сервере приложений Websphere?

+0

Вам необходимо показать нам код 'ConnPoolServlet.getConnection (..)'. Кажется, вы пытаетесь найти какой-то ресурс без имени. Должно быть имя ресурса, который вы ищете между словами 'Name' и' not found..' в сообщении – titou10

ответ

0

Как вы подключаетесь к источнику данных. Вам нужно будет использовать поиск InitialContext (с WsInitialNaming, привязкой адреса сервера iiop с правым руководителем и т. Д. ) и подключиться к источнику данных в WAS, который немного отличается от того, как это обычно делается на Tomcat.

Также дополнительно вы можете также выполнить dumpNamespace, чтобы увидеть, если есть JNDI связывания, который доступен для DataSource и пула подключений для поиска и использования

+0

вы можете попробовать искать без префикса just: jdbc/danone. Я предполагаю, что вы проверили соединение в консоли администратора, и оно работает –

+1

Надеюсь, вы пробовали: java: comp/..... Удаление этого/ –

+0

Привет, Рамачандран, проблема исправлена ​​с помощью java: comp/... Спасибо за ваше время – user3442562

0

В случае прямого JNDI поиска без ссылки на ресурс, Tomcat позволяет прямой поиск с префиксом java:comp/env/, тогда как WAS - нет. Используйте jdbc/datasource (без префикса) для WAS в ConnPoolServlet.getConnection(..)

+0

Это совершенно неверно. WAS использует java: comp/env для ссылок на ресурсы, и рекомендуется использовать доступ к ресурсам сервера. Возможно, ссылка на ресурс неверно определена в приложении. – Gas

+0

Ответ правильный для прямого поиска без ссылки на ресурсы. В вопросе говорится: «Файл WAR отлично работает в Tomcat и подключается к базе данных с именем jndi», что указывает на сильный случай прямого поиска. Ответ неполный, но неверный. Не могли бы вы отменить поданный голос? –

+0

Сделайте этот ответ полным и объясните, что в случае Tomcat для прямого поиска он позволяет java: comp, тогда я отменим. Как в нынешнем виде, он вводит в заблуждение и неполный. – Gas

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