У меня есть веб-приложение с простым старым JDBC.
Использование weblogic 12c и Java 1.7
Настроил общий источник данных в weblogic.
На данный момент я развертываю его как WAR - в будущем мне нужно будет развернуть его как EAR.
Итак, вот три варианта, которые я попробовал:
Для этого источника данных настроено 4 имени JNDI: 'abc' 'lmn' 'pqr' 'xyz'
1
public static DataSource dataSource1 = null;
Context initContext1 = new InitialContext();
dataSource1 = (DataSource)initContext1.lookup("abc");
Это работает.
2
Defined the datasource in web.xml:
<resource-ref>
<description>DB Connection</description>
<res-ref-name>lmn</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
В коде Java:
public static DataSource dataSource2 = null;
Context initContext2 = new InitialContext();
dataSource2 = (DataSource)initContext2.lookup("lmn");
Это тоже отлично работает
3
@Resource(name = "pqr")
public static DataSource dataSource3 = null;
conn = dataSource3.getConnection();
Это НЕ работает.
Не уверен, что здесь не так?
и какой вариант лучше использовать?
Будет проверять файл EAR отдельно и проверять второй вопрос вокруг него.