Я пытаюсь развернуть файл ear на сервере Weblogic 12. Файл ear содержит HttpServlet. Во время развертывания HttpServlet пытается инициализироваться и завершается с ошибкой:
Целевое состояние: сбой развертывания на кластере
javax.naming.NameNotFoundException: при попытке поиска
"JDBC. не нашел подконтекст 'jdbc'. Постановили
'' в
weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException (BasicNamingNode.java:1180)
Я протестировал соединение с источником данных на серверах weblogic, и оно прошло успешно.
Источник данных определен в файле свойств, к которому осуществляется доступ, поскольку имя источника данных является правильным. URL-адрес веб-сервера также правильный.
Это метод init ():
public void init(ServletConfig config) throws ServletException
{
super.init(config);
Context jndiContext = null;
Hashtable ht = new Hashtable();
try
{
PropertyManager.getInstance(PROPS_FILE);
PropertyManager.getInstance();
ht.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
ht.put(Context.PROVIDER_URL, PropertyManager.getProperty("WL_WEBSERVER_URL"));
jndiContext = new InitialContext(ht);
ds = (javax.sql.DataSource) jndiContext.lookup(PropertyManager.getProperty("SEC_DATASOURCE"));
}
}
Я не понимаю, почему он не распознает подконтекст jdbc
.
Я пытался удалить jdbc
. Но ошибка - это NameNotFoundException без jdbc
.
UPDATE
Я попытался изменить имя источника данных на java:jdbc/scantDS
. Я получил другое исключение NameNotFoundException:
". Javax.naming.NameNotFoundException: Пока
пытается найти / jdbc / scantDS в / app / webapp / Load / 421643657 .;
оставшееся имя '/ jdbc / scantDS' в
weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException (BasicNamingNode.java:1180)