无法加载连接类,因为基础异常:';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块中添加了以下内容:无法加载连接类,因为基础异常:';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
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方法,所以我不能重新请求