2014-03-07 29 views
0

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

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

异常:javax.naming.NoInitialContextException:需要在环境或系统属性或applet参数中指定类名,或者在应用程序资源文件中指定类名: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

+0

请原谅我的无知,但$ CATALINA_BASE位于何处?我将JBoss安装在以下目录中:C:\ jbdevstudio \ runtimes \ jboss-eap – Chad

+0

对JBOSS-EAP 6来说,context.xml位于C:\ jbdevstudio \ runtimes \ jboss-eap \ standalone \配置\ standalone.xml有我能够添加数据源元素的地方 – Chad