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

连接到JBoss EWS 2.0中的本地MySQL数据库,mysql,jboss,openshift,Mysql,Jboss,Openshift,我创建了一个OpenShift应用程序(Tomcat 7(JBoss EWS 2.0)),在的帮助下,我能够将我的应用程序部署到OpenShift并连接到OpenShift中的本地MySQL数据库 我现在试图只在本地机器上连接到同一个数据库,但是当我调用initialContext.lookup(“jdbc/local”)时,它会抛出一个错误。这就像它无法找到context.xml文件一样,即使在OpenShift中部署应用程序时,它也能正常工作 异常:javax.naming.NoInitia

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

我现在试图只在本地机器上连接到同一个数据库,但是当我调用initialContext.lookup(“jdbc/local”)时,它会抛出一个错误。这就像它无法找到context.xml文件一样,即使在OpenShift中部署应用程序时,它也能正常工作

异常:javax.naming.NoInitialContextException:需要在环境或系统属性中指定类名,或作为小程序参数,或在应用程序资源文件中指定类名:java.naming.factory.initialName需要在环境或系统属性中指定类名,或作为小程序参数,或者在应用程序资源文件中: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"
          />    
private静态数据源getDataSource(){
DataSource DataSource=null;
试一试{
InitialContext ic=新的InitialContext();
Context initialContext=(Context)ic.lookup(“java:comp/env”);
datasource=(datasource)initialContext.lookup(“jdbc/local”);
}捕获(例外情况除外){
System.out.println(“异常:+ex+ex.getMessage());
}最后{
返回数据源;
}
}

你是对的。在使用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中,我可以在其中添加数据源元素