Подключение к локальной базе данных MySQL в JBoss EWS 2.0
Я создал приложение OpenShift (Tomcat 7 (JBoss EWS 2.0)) и с помощью developercorey смог развернуть свое приложение в OpenShift и подключиться к локальной базе данных MySQL в OpenShift.
Сейчас я пытаюсь подключиться к той же базе данных только на моем локальном компьютере, но когда я вызываю initialContext.lookup("jdbc/local"), он выдает ошибку. Он действует так, как будто не может найти файл context.xml, хотя при развертывании приложения в OpenShift он работает правильно.
Исключение: javax.naming.NoInitialContextException: необходимо указать имя класса в свойстве среды или системы, либо в качестве параметра апплета, либо в файле ресурса приложения: java.naming.factory.initialNeed, чтобы указать имя класса в свойстве среды или системы, либо в качестве параметра апплета или в файле ресурсов приложения: java.naming.factory.initial Исключение: java.lang.NullPointerExceptionnull
Я привык к Tomcat, и расположение источников данных находится в: WebContent\META-INF\context.xml
Но для JBoss context.xml находится в: .openshift\config\context.xml
Нужно ли выполнять дополнительное сопоставление, чтобы приложение подключалось локально?
Заранее спасибо!
private static DataSource getDataSource() {
DataSource datasource = null;
try {
InitialContext ic = new InitialContext();
Context initialContext = (Context) ic.lookup("java:comp/env");
datasource = (DataSource) initialContext.lookup("jdbc/local");
} catch (Exception ex) {
System.out.println("Exception: " + ex + ex.getMessage());
} finally {
return datasource;
}
}
<Resource name="jdbc/OpenShift"
url="jdbc:mysql://127.10.198.2:3306/remote"
driverClassName="com.mysql.jdbc.Driver"
username="root"
password="*****"
auth="Container"
type="javax.sql.DataSource"
maxActive="20"
maxIdle="5"
maxWait="10000"
/>
<Resource name="jdbc/local"
url="jdbc:mysql://127.0.0.1:3306/local"
driverClassName="com.mysql.jdbc.Driver"
username="root"
password="******"
auth="Container"
type="javax.sql.DataSource"
maxActive="20"
maxIdle="5"
maxWait="10000"
/>
1 ответ
Ты прав. При работе с OpenShift путь, по которому нужно обновить файл context.xml, действительно.openshift \ config \ context.xml
Однако, если вы работаете на месте. Вам необходимо обновить context.xml по следующему пути - $CATALINA_BASE/conf/context.xml