Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法加载连接类,因为基础异常:';java.lang.NumberFormatException:对于输入字符串:";OPENSHIFT“U MYSQL”U DB“U端口”';_Java_Mysql_Jersey_Openshift - Fatal编程技术网

无法加载连接类,因为基础异常:';java.lang.NumberFormatException:对于输入字符串:";OPENSHIFT“U MYSQL”U DB“U端口”';

无法加载连接类,因为基础异常:';java.lang.NumberFormatException:对于输入字符串:";OPENSHIFT“U MYSQL”U DB“U端口”';,java,mysql,jersey,openshift,Java,Mysql,Jersey,Openshift,我正在尝试在openshift上部署我的Jersey项目。我已经实现了这个apple类来测试另一个类中的错误,因为我猜问题在于建立数据库连接。在Tails日志中,我发现了以下错误: 连接到数据库 com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:无法加载连接类,因为存在基础异常:“java.lang.NumberFormatException:对于输入字符串:“OPENSHIFT\u mysql\u DB\u

我正在尝试在openshift上部署我的Jersey项目。我已经实现了这个apple类来测试另一个类中的错误,因为我猜问题在于建立数据库连接。在Tails日志中,我发现了以下错误:

连接到数据库 com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:无法加载连接类,因为存在基础异常:“java.lang.NumberFormatException:对于输入字符串:“OPENSHIFT\u mysql\u DB\u PORT”。 位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)

编辑:我在DriverManager.getConnection()之后的try块中添加了以下内容:

Map env=System.getenv();
for(字符串envName:env.keySet()){
System.out.format(“%s=%s%n”,
我的名字,
env.get(envName));
}
我已尝试了以下操作,但仍然出现相同的错误:

  • 此解决方案:并添加以下jdbc:mysql://${env.OPENSHIFT\u mysql\u DB\u HOST}:${env.OPENSHIFT\u mysql\u DB\u PORT}/serv‌​但一切都没有改变
  • “jdbc:mysql://127.10.310.130:3306 /服务器端”;此值来自应用程序的phpmyadmin

    • 问题是因为这条线路

      String host = "jdbc:mysql://$OPENSHIFT_MYSQL_DB_HOST:OPENSHIFT_MYSQL_DB_PORT/serverside";
      
      要获取环境变量,需要使用方法
      System.getEnv().get(“[变量名称]”)
      。因此,在您的例子中,主机变量应该如下所示

      String host = "jdbc:mysql://" 
                    + System.getenv().get("OPENSHIFT_MYSQL_DB_HOST") 
                    + ":" 
                    + System.getenv().get("OPENSHIFT_MYSQL_DB_PORT") 
                    + "/serverside";
      

      顺便说一下,您的编辑不起作用,因为应用程序在执行代码之前已经抛出了一个异常。因此,要使其工作,您需要将它放在
      DriverManager.getConnection()函数之前。

      问题在于这一行

      String host = "jdbc:mysql://$OPENSHIFT_MYSQL_DB_HOST:OPENSHIFT_MYSQL_DB_PORT/serverside";
      
      要获取环境变量,需要使用方法
      System.getEnv().get(“[变量名称]”)
      。因此,在您的例子中,主机变量应该如下所示

      String host = "jdbc:mysql://" 
                    + System.getenv().get("OPENSHIFT_MYSQL_DB_HOST") 
                    + ":" 
                    + System.getenv().get("OPENSHIFT_MYSQL_DB_PORT") 
                    + "/serverside";
      

      顺便说一下,您的编辑不起作用,因为应用程序在执行代码之前已经抛出了一个异常。因此,要使其工作,您需要将其置于
      DriverManager.getConnection()函数之前。

      您可以按如下方式替换这些变量

             <property name="url"                                                                                                              
            value="jdbc:mysql://$OPENSHIFT_MYSQL_DB_HOST:$OPENSHIFT_MYSQL_DB_PORT/
             yourdatabasename" />
      
             can be replaced as below.
      
           <property name="url"  
          value="jdbc:mysql://127.12.97.2:3306/yourdatabasename"
          />
      
      
      可按如下方式更换。
      

      jdbc:mysql://127.12.97.2:3306/yourdatabasename“IP地址和端口号可以从openshift phpmyadmin页面获得,它们通常显示在管理页面的顶部。

      您可以按如下方式替换这些变量

             <property name="url"                                                                                                              
            value="jdbc:mysql://$OPENSHIFT_MYSQL_DB_HOST:$OPENSHIFT_MYSQL_DB_PORT/
             yourdatabasename" />
      
             can be replaced as below.
      
           <property name="url"  
          value="jdbc:mysql://127.12.97.2:3306/yourdatabasename"
          />
      
      
      可按如下方式更换。
      

      jdbc:mysql://127.12.97.2:3306/yourdatabasename“IP地址和端口号可以从openshift phpmyadmin页面获得,它们通常显示在管理页面的顶部。

      我尝试了上述所有解决方案,但都没有解决我的问题。所以,任何人仍然得到这个例外,试试这个。 存储在环境变量$OPENSHIFT\u MYSQL\u DB\u HOST中的值类似于

      “jdbc:mysql://adminuname:adminpass@127.02.0.1:3306/appname'

      。因此,使用该值为DriverManager.getConnection()创建url会出现异常。 相反,请尝试了解存储在$OPENSHIFT\u MYSQL\u DB\u HOST中的值,然后将url硬编码为字符串变量,而不使用用户名和密码。像这样的

      “jdbc:mysql://127.02.0.1:3306/appname"

      对我来说,它在做了这个修改之后就开始工作了。所有其他环境变量都可以按原样使用


      我尝试了上述所有解决方案,但都没有解决我的问题。所以,任何人仍然得到这个例外,试试这个。 存储在环境变量$OPENSHIFT\u MYSQL\u DB\u HOST中的值类似于

      “jdbc:mysql://adminuname:adminpass@127.02.0.1:3306/appname'

      。因此,使用该值为DriverManager.getConnection()创建url会出现异常。 相反,请尝试了解存储在$OPENSHIFT\u MYSQL\u DB\u HOST中的值,然后将url硬编码为字符串变量,而不使用用户名和密码。像这样的

      “jdbc:mysql://127.02.0.1:3306/appname"

      对我来说,它在做了这个修改之后就开始工作了。所有其他环境变量都可以按原样使用


      它将
      OPENSHIFT\u MYSQL\u DB\u PORT
      解释为字符串,而不是is的valueReview。也许你所有的问题都是你忘记了“$”,所以访问
      OPENSHIFT\u MYSQL\u DB\u端口
      系统变量@Fran:我添加了它,但它没有解决问题,我得到了相同的
      ,原因是:java.lang.NumberFormatException:对于输入字符串:“$OPENSHIFT\u MYSQL\u DB\u端口”
      检查系统变量OPENSHIFT\u MYSQL\u DB\u PORT是否为set@MrPencil尝试使用最终值:
      “jdbc:mysql://$OPENSHIFT\u mysql\u DB\u HOST:3306/serverside”
      它将
      OPENSHIFT\u mysql\u DB\u PORT
      解释为字符串,而不是原样的valueReview。也许你所有的问题都是你忘记了“$”,所以访问
      OPENSHIFT\u MYSQL\u DB\u端口
      系统变量@Fran:我添加了它,但它没有解决问题,我得到了相同的
      ,原因是:java.lang.NumberFormatException:对于输入字符串:“$OPENSHIFT\u MYSQL\u DB\u端口”
      检查系统变量OPENSHIFT\u MYSQL\u DB\u PORT是否为set@MrPencil尝试使用最终值:
      “jdbc:mysql://$OPENSHIFT\u mysql\u DB\u主机:3306/serverside”
      Aha现在可以工作了,谢谢:)我正在使用eclipse中openshift的尾部文件来跟踪openshift服务器上发生的事情,但是如果我从
      POSTMAN
      Chrome或
      HttpRquester
      firefox请求,我必须从浏览器请求openshift以查看尾部文件中的输出,我不能说尾部文件中有任何输出因为我的另一个类有一个POST方法,所以我不能重新请求