【问题标题】:Connect to local MySQL database in JBoss EWS 2.0在 JBoss EWS 2.0 中连接到本地 MySQL 数据库
【发布时间】:2014-03-07 16:42:14
【问题描述】:

我创建了一个 OpenShift 应用程序 (Tomcat 7 (JBoss EWS 2.0)),在 developercorey 的帮助下,我能够将我的应用程序部署到 OpenShift 并连接到 OpenShift 中的本地 MySQL 数据库。

我现在尝试仅在本地计算机上连接到同一个数据库,但是当我调用 initialContext.lookup("jdbc/local") 时会引发错误。即使将应用程序部署在 OpenShift 中它可以正常工作,它也无法找到 context.xml 文件。

异常:javax.naming.NoInitialContextException:需要在环境或系统属性中指定类名,或作为小程序参数,或在应用程序资源文件中:java.naming.factory.initial需要在环​​境或系统中指定类名属性,或作为小程序参数,或在应用程序资源文件中: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"
          />    

【问题讨论】:

    标签: mysql jboss openshift


    【解决方案1】:

    你是对的。在 OpenShift 上工作时,需要更新 context.xml 文件的路径确实是 .openshift\config\context.xml

    但是,如果您在本地工作。您需要更新以下路径下的 context.xml - $CATALINA_BASE/conf/context.xml

    【讨论】:

    • 请原谅我的无知,但 $CATALINA_BASE 在哪里?我在以下目录中安装了 JBoss:C:\jbdevstudio\runtimes\jboss-eap
    • 成功了,对于 JBOSS-EAP 6,context.xml 位于 C:\jbdevstudio\runtimes\jboss-eap\standalone\configuration\standalone.xml 有我能够做到的地方添加数据源元素
    猜你喜欢
    • 2014-06-11
    • 2016-08-26
    • 2012-12-08
    • 2016-03-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-15
    • 1970-01-01
    • 2018-11-02
    相关资源
    最近更新 更多