连接到JBoss EWS 2.0中的本地MySQL数据库

时间:2014-03-07 16:42:15

标签: mysql jboss openshift

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

我现在尝试仅在本地计算机上连接到同一数据库,但是当我调用initialContext.lookup(“jdbc / local”)时,它会抛出错误。即使在OpenShift中部署应用程序时,它也无法找到context.xml文件。

异常:javax.naming.NoInitialContextException:需要在环境或系统属性中指定类名,或者在applet参数中或在应用程序资源文件中指定类名:java.naming.factory.initialNeed指定环境或系统中的类名属性,或作为applet参数,或在应用程序资源文件中:java.naming.factory.initial 例外:java.lang.NullPointerExceptionnull

我习惯了Tomcat,数据源的位置位于: WebContent \ META-INF \ context.xml

但对于JBoss,context.xml位于: .openshift \配置\ 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 个答案:

答案 0 :(得分:1)

你是对的。在使用OpenShift时,更新context.xml文件所需的路径确实是.openshift \ config \ context.xml

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