gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 13:09:41 25 4
gpt4 key购买 nike

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

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

异常: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"
/>

最佳答案

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

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

关于mysql - 连接到 JBoss EWS 2.0 中的本地 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22255751/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com