Подключение к локальной базе данных 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

Другие вопросы по тегам