JDBC无法在openshift上连接mysql数据库

2024-04-04

我设法使用 phpMyAdmin 等在 OpenShift 上设置 MySQL 数据库。 我被告知我的数据库的主机名和端口分别是 $OPENSHIFT_MYSQL_DB_HOST 和 $OPENSHIFT_MYSQL_DB_PORT ,我将其放入 context.xml 文件中,如下所示:

<context-param>
        <param-name>driver</param-name>
        <param-value>com.mysql.jdbc.Driver</param-value>
    </context-param>
    <context-param>
        <param-name>url</param-name>
        <param-value>jdbc:mysql://$OPENSHIFT_MYSQL_DB_HOST:$OPENSHIFT_MYSQL_DB_PORT/burgerjoint</param-value>
    </context-param>
    <context-param>
        <param-name>user</param-name>
        <param-value>admin******</param-value>
    </context-param>
    <context-param>
        <param-name>password</param-name>
        <param-value>*********</param-value>
    </context-param>

设置连接的代码是:

public void contextInitialized(ServletContextEvent event) {
    // Connect
    String driver = event.getServletContext().getInitParameter(PARAM_DRIVER);
    String url = event.getServletContext().getInitParameter(PARAM_URL);
    String username = event.getServletContext().getInitParameter(PARAM_USERNAME);
    String password = event.getServletContext()
        .getInitParameter(PARAM_PASSWORD);

    try {
        Class.forName(driver);
        Connection connection = DriverManager.getConnection(url, username,
            password);

        event.getServletContext().setAttribute(ATTR_CONNECTION, connection);


    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    } catch (SQLException e) {
        e.printStackTrace();
    }

    }

但问题是服务器上的连接为空,我不明白为什么。我做错什么了吗?当我在本地主机上尝试时,该代码有效。据我所知,我拥有所有必要的库:

谢谢您的帮助 :)

Update

我修改了连接代码如下:

{
    if (connection != null) return connection;

    try
    {
        Properties dbProperties = new Properties();
        InputStream input = DatabaseUtil.class.getClassLoader().getResourceAsStream(DB_PROPERTIES_FILE);
        dbProperties.load(input);
        String url = "";
        if (appIsDeployed)
        {
        String host = System.getenv("$OPENSHIFT_MYSQL_DB_HOST");
        String port = System.getenv("$OPENSHIFT_MYSQL_DB_PORT");
        String name = "burgerjoint";
        url = "jdbc:mysql://" + host + ":" + port + "/" + name;
        } else
        {
        url = dbProperties.getProperty(PARAM_URL);
        }
        String driver = dbProperties.getProperty(PARAM_DRIVER);
        String username = dbProperties.getProperty(PARAM_USERNAME);
        String password = dbProperties.getProperty(PARAM_PASSWORD);

        Class.forName(driver);
        connection = DriverManager.getConnection(url, username, password);

但它仍然给出空连接。的价值观System.getenv("$OPENSHIFT_MYSQL_DB_HOST") and System.getenv("$OPENSHIFT_MYSQL_DB_PORT")为空。


这是不正确的:

jdbc:mysql://$OPENSHIFT_MYSQL_DB_HOST:$OPENSHIFT_MYSQL_DB_PORT/burgerjoint

该美元符号表明您认为将替换正确的主机和数据库名称,但事实并非如此。

对主机和数据库名称进行编码以查看其是否有效,然后了解 .properties 文件以将其外部化。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JDBC无法在openshift上连接mysql数据库 的相关文章

  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • 在 PHP 字符串中格式化 MySQL 代码

    是否有任何程序 IDE 可以在 PHP 字符串中格式化 MySQL 代码 例如 我使用 PHPStorm IDE 但它无法做到这一点 它对 PHP 和 MYSQL 执行此操作 但不适用于 php 字符串内的 MYSQL 我已准备好使用新的
  • 如何从shell脚本自动登录MySQL?

    我有一个 MySQL 服务器 其中有一个用户和密码 我想在 shell 脚本中执行一些 SQL 查询而不指定密码 如下所示 config sh MYSQL ROOT root MYSQL PASS password mysql sh sou
  • 多个 Maven 配置文件激活多个 Spring 配置文件

    我想在 Maven 中构建一个环境 在其中我想根据哪些 Maven 配置文件处于活动状态来累积激活多个 spring 配置文件 目前我的 pom xml 的相关部分如下所示
  • Liferay ClassNotFoundException:DLFileEntryImpl

    在我的 6 1 0 Portal 实例上 带有使用 ServiceBuilder 和 DL Api 的 6 1 0 SDK Portlet 这一行 DynamicQuery query DynamicQueryFactoryUtil for
  • Spring Data JPA 应用排序、分页以及 where 子句

    我目前正在使用 Spring JPA 并利用此处所述的排序和分页 如何通过Spring data JPA通过排序和可分页查询数据 https stackoverflow com questions 10527124 how to query
  • 磁模拟

    假设我在 n m 像素的 2D 表面上有 p 个节点 我希望这些节点相互吸引 使得它们相距越远吸引力就越强 但是 如果两个节点之间的距离 比如 d A B 小于某个阈值 比如 k 那么它们就会开始排斥 谁能让我开始编写一些关于如何随时间更新
  • 路径中 File.separator 和斜杠之间的区别

    使用有什么区别File separator和一个正常的 在 Java 路径字符串中 与双反斜杠相反 平台独立性似乎不是原因 因为两个版本都可以在 Windows 和 Unix 下运行 public class SlashTest Test
  • Java按日期升序对列表对象进行排序[重复]

    这个问题在这里已经有答案了 我想按一个参数对对象列表进行排序 其日期格式为 YYYY MM DD HH mm 按升序排列 我找不到正确的解决方案 在 python 中使用 lambda 很容易对其进行排序 但在 Java 中我遇到了问题 f
  • SQL不允许表中有重复记录

    如何使其不添加重复项 我想让它通过 ID 之外的所有其他列进行检查 我希望这个无效 ID col1 col2 col3 1 first middle last ID col1 col2 col3 2 first middle last 我希
  • JRE 系统库 [WebSphere v6.1 JRE](未绑定)

    将项目导入 Eclipse 后 我的构建路径中出现以下错误 JRE System Library WebSphere v6 1 JRE unbound 谁知道怎么修它 右键单击项目 特性 gt Java 构建路径 gt 图书馆 gt JRE
  • Java执行器服务线程池[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如果我使用 Executor 框架在
  • 无法捆绑适用于 Mac 的 Java 应用程序 1.8

    我正在尝试将我的 Java 应用程序导出到 Mac 该应用程序基于编译器合规级别 1 7 我尝试了不同的方法来捆绑应用程序 1 日食 我可以用来在 Eclipse 上导出的最新 JVM 版本是 1 6 2 马文 看来Maven上也存在同样的
  • 在mockito中使用when进行模拟ContextLoader.getCurrentWebApplicationContext()调用。我该怎么做?

    我试图在使用 mockito 时模拟 ContextLoader getCurrentWebApplicationContext 调用 但它无法模拟 here is my source code Mock org springframewo
  • 声明的包“”与预期的包不匹配

    我可以编译并运行我的代码 但 VSCode 中始终显示错误 早些时候有一个弹出窗口 我不记得是什么了 我点击了 全局应用 从那以后一直是这样 Output is there but so is the error The declared
  • 获取 JVM 上所有引导类的列表?

    有一种方法叫做findBootstrapClass对于一个类加载器 如果它是引导的 则返回一个类 有没有办法找到类已经加载了 您可以尝试首先通过例如获取引导类加载器呼叫 ClassLoader bootstrapLoader ClassLo
  • 在 Maven 依赖项中指定 jar 和 test-jar 类型

    我有一个名为 commons 的项目 其中包含运行时和测试的常见内容 在主项目中 我添加了公共资源的依赖项
  • 有没有办法为Java的字符集名称添加别名

    我收到一个异常 埋藏在第 3 方库中 消息如下 java io UnsupportedEncodingException BIG 5 我认为发生这种情况是因为 Java 没有定义这个名称java nio charset Charset Ch
  • JGit 检查分支是否已签出

    我正在使用 JGit 开发一个项目 我设法删除了一个分支 但我还想检查该分支是否已签出 我发现了一个变量CheckoutCommand但它是私有的 private boolean isCheckoutIndex return startCo
  • 使用 xpath 和 vtd-xml 以字符串形式获取元素的子节点和文本

    这是我的 XML 的一部分

随机推荐

  • Java 可运行队列

    我需要对下面的关键代码进行同行评审 该类维护一个可运行对象的队列 并确保它们按顺序执行 即在前一个对象完成后开始一个新的任务 直到队列中没有更多任务为止 我很确定它确实如此 但我必须绝对确定它的行为符合预期 非常感谢 public fina
  • 建议对古式拼写进行其他查询(例如 Google 的 Did You Mean)

    我的客户有一个包含 400 年历史的房地产记录数据库 他们有兴趣根据他们的数据向用户提供替代拼写建议 我假设在这样的情况下 它会变成一个包含 Martin 行以及 Martyn 和 Martine 等建议的表 有谁知道可以索引其数据的第三方
  • Git - 删除像它一样的旧提交,并且它的更改从未发生过

    我想删除较旧的提交 因为我必须将其分成 2 个提交 所以变化是在a5b4cd与以下的变化相同2a0d40e a8bb836 2a0d40e Add sending a8bb836 Add parsing a5b4cbd Add sendin
  • 使用 Python 图像库 (PIL) 标准化一组图像的直方图(亮度和对比度)

    我有一个脚本 它使用 Google Maps API 下载一系列大小相等的方形卫星图像并生成 PDF 图像需要事先旋转 我已经使用 PIL 这样做了 我注意到 由于光线和地形条件不同 有些图像太亮 有些图像太暗 生成的pdf结果有点难看 在
  • Redis多插入问题

    我尝试多次插入 但它给了我错误 http pastie org 7337421 http pastie org 7337421 cat mass insert txt 3 r n 3 r nSET r n 3 r nkey r n 5 r
  • Ansible:SSH 错误:unix_listener:对于 Unix 域套接字来说太长

    这是一个已知问题 我找到了解决方案 但它对我不起作用 首先我有 fatal openshift node compute e50xx gt SSH Error ControlPath too long It is sometimes use
  • Maven Wagon 插件:wagon:upload 可以上传到多个位置吗?

    我正在调查Maven 旅行车插件 http mojo codehaus org wagon maven plugin 尝试将一些工件上传到远程 UNC Server 共享 servername share directory to put
  • 获取异步函数的 NULL 值(使用等待之后),然后更新为新值

    当我运行我的应用程序时 它会抛出很多错误 并且我的设备上会出现红色 黄色错误屏幕 它会自动刷新并向我显示预期的输出 从日志中我可以看到 首先我的对象返回为 null 随后以某种方式更新并获得输出 我最近开始了 Android 开发 Flut
  • 如何在android中处理搜索视图的后退按钮

    我开发了一个在操作栏中具有搜索视图的应用程序 当我完美搜索其过滤器时 我遇到了问题 但是当我按下后退按钮时 它仍然显示过滤器数据 所以我的问题是操作栏搜索的后退按钮的事件是什么看法 我的搜索视图代码是 SearchView searchVi
  • 具有架构组件的多模块导航

    所以我当前的应用程序中的模块有这样的结构 我还没有找到任何关于多模块导航的官方文档 但我发现了这个article https medium com hartwich daniel multi module navigation with t
  • 如何将列标题转换为贷款号码的行[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我陷入了无法旋转的境地 我有一个类似下面 temp 的表 使用sql server 2008 r2 Select LoanNumber 2
  • 维护和重用现有的 webdriver 浏览器实例 - java

    基本上每次我从 eclipse 运行 java 代码时 webdriver 都会启动一个新的 ie 浏览器并在大部分情况下成功执行我的测试 然而 我有很多测试要运行 而且 webdriver 每次都会启动一个新的浏览器会话 这很痛苦 我需要
  • Raspberry Pi 上的 Sqlite4java

    我想在 Raspberry Pi 上使用我的 java 项目 此代码依赖于 sqlite4java 它使用许多平台 包括 Arm 处理器 的本机实现link http code google com p sqlite4java downlo
  • 如何让 vscode 知道 SCM 何时可见?

    我想用 VScode 的键绑定制作切换键 使用 alt 1 到 5 切换资源管理器和搜索 scm 调试扩展 我可以找到 explorerViewletVisible 或 searchViewletVisible 但我找不到 scm 源代码控
  • 如何从 Angular 范围中排除元素?

    我的前提是错误的 虽然 AngularJS 确实减慢了速度 但这并不是因为我下面描述的问题 然而 正是 flim 对我的问题 如何从 Angular 范围中排除元素 的回答才证明了这一点 我正在构建一个网站 该网站使用 d3 Raphael
  • PhoneGap iOS 7 和 localStorage

    我目前正在构建一个 PhoneGap 3 3 0 iOS 应用程序 该应用程序使用 Ember js EmberData 和 LocalStorage 适配器来保存数据 读了一些文章后就像这个 StackOverflow 问题 https
  • 集合接口和WCF

    我正在使用 C 和 WCF 来做 Web 服务 我有一个实现 IEnumerable 的类的成员变量 我尝试通过执行以下操作将其序列化为我的数据合同的一部分 DataContract class Item DataMember privat
  • 约束消失的情况:更高等级类型的怪异

    下面描述的所有实验都是使用 GHC 8 0 1 完成的 这个问题是后续问题具有类型别名混淆的 RankNTypes https stackoverflow com q 40252867 2751851 那里的问题归结为像这样的函数类型 LA
  • 获取 i18next 翻译器 缺少密钥

    这是我第一次使用 i18next 我不知道如何让它发挥作用 这似乎是文档 http i18next com docs 对我来说是不完整的 这是我使用 i18next 的 HTML 代码
  • JDBC无法在openshift上连接mysql数据库

    我设法使用 phpMyAdmin 等在 OpenShift 上设置 MySQL 数据库 我被告知我的数据库的主机名和端口分别是 OPENSHIFT MYSQL DB HOST 和 OPENSHIFT MYSQL DB PORT 我将其放入