Экземпляр lib сервера Weblogic VS libext

Я использую weblogic 10. Обеспечивать драйвер 10.2.0.2 JDBC Oracle (в сервере/lib на weblogic домой).

На самом деле кто-то на работе, помещенной давным-давно 10.2.0.3 драйвера в экземпляр libext папка.

Но в производстве мы получили jdbc стопку драйвера (nullpointer: O) и путем инженерного анализа кажется, что мы используем драйвер 10.2.0.2.

Мы знаем, что могли изменить драйвер в сервере/lib weblogic, но я хочу понять.

Разве libext не предположен переопределить сервер, освобождает как META-INF, освобождает переопределение libext?

По тому, как мы находимся в странной ситуации: - у нас есть 2 EAR, и для той же самой обработки в тех 2, каждый когда-то бросит драйвер оракула nullpointer, в то время как другой не делает - интересно, не использует ли одно ухо 10.2.0.2, в то время как другой использует 10.2.0.3 (я видел, что ошибка зафиксировала, который мог соответствовать к нашей проблеме для этой версии). - Я должен выглядеть лучше, но на первый взгляд оба использования уха тот же самый набор источника данных в weblogic JNDI ресурсы

Какая-либо идея?

1
задан Sebastien Lorber 9 June 2010 в 09:28
поделиться

2 ответа

Никто не должен помещать что-либо в каталог lib / ext, особенно JAR-файлы драйверов JDBC. Этот каталог предназначен для расширений библиотеки. Я бы немедленно удалил этот JAR из lib / ext.

Как вы говорите, если версия 10.2.0.3 представляет собой исправление ошибки, правильным местом для ее размещения будет server / lib, а не lib / ext.

Два EAR означают два отдельных сервера или два разных порта? Я не уверен, почему WebLogic предпочел бы один драйвер другому для той же конфигурации.

1
ответ дан 2 September 2019 в 23:55
поделиться

Как утверждает @duffymo и Oracle docs: http://download.oracle.com/docs/cd/E11035_01/wls100/jdbc_admin/third_party_drivers.html#wp1048361 местоположение драйвера должно быть server/lib.

Можете ли вы запустить это из JSP на каждом EAR - это должно дать вам jar-файл, из которого загружается драйвер.

try {
  String candidate = "oracle.jdbc.driver.OracleDriver";
  Class clazz = Class.forName(candidate);
  java.security.ProtectionDomain dom = clazz.getProtectionDomain();
  java.security.CodeSource cs = dom.getCodeSource();
  java.net.URL url = cs.getLocation();
  out.println("<TITLE>" + candidate + "</TITLE></head><body>");
  out.println("Path for " + candidate + " = " + url.getFile());
} catch (Exception t) {
  t.printStackTrace(response.getWriter());
}
1
ответ дан 2 September 2019 в 23:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: