我正在尝试在 openshift 上从 eclipse 部署我的 Jersey 项目,并且在尾部文件中收到此错误Caused by: java.net.NoRouteToHostException: No route to host
以前当我有这样的时候:
String host = "jdbc:mysql://$OPENSHIFT_MYSQL_DB_HOST:$OPENSHIFT_MYSQL_DB_PORT/bustrackerserver"
我收到这个错误:
'java.lang.NumberFormatException:对于输入字符串:“OPENSHIFT_MYSQL_DB_PORT”'
- 我已经 ping 通了这个 IP 地址
127.10.230.440
我收到回复
- 我检查了一些端口 8080、3306 是否正在从我的本地机器使用,但它们只是从 eclipse 使用。
苹果类。
package org.busTracker.serverSide;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Map;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
/**
* Root resource (exposed at "myresource" path)
*/
@Path("myresource")
public class Apple {
//String host = " jdbc:mysql://${env.OPENSHIFT_MYSQL_DB_HOST}:${env.OPENSHIFT_MYSQL_DB_PORT}/serverside";
//String host = "jdbc:mysql://$OPENSHIFT_MYSQL_DB_HOST:$OPENSHIFT_MYSQL_DB_PORT/bustrackerserver";
String host = "jdbc:mysql://127.10.230.440:3306/bustrackerserver";
String user = "adminNMccsBr";
String password = "K3SV5rbxh8qP";
/**
* Method handling HTTP GET requests. The returned object will be sent
* to the client as "text/plain" media type.
*
* @return String that will be returned as a text/plain response.
*/
@GET
@Produces(MediaType.TEXT_PLAIN)
public String getIt() {
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
System.out.println("Connecting to database…");
conn = DriverManager.getConnection(host,user,password);
Map<String, String> env = System.getenv();
for (String envName : env.keySet()) {
System.out.format("%s=%s%n",
envName,
env.get(envName));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
// ignore
}
}
}
return "Hello, from apple class 14.05.15 13:30!";
}
}
你的MySQL是not侦听 TCP/IP,因此您的连接尝试失败。当你说:
我检查了一些端口 8080、3306 是否正在从我的本地机器使用,但它们只是从 eclipse 使用。
换句话说,MySQL 是not在本地主机上监听。要以另一种方式确认这一点,请尝试从命令提示符连接到 MySQL:
mysql -u adminNMccsBr -h 127.10.230.440 -p YOUR_DB_NAME
我预计这会失败。问题的解决方案是将 MySQL 配置为在本地主机上侦听。在里面/etc/my.cnf
配置文件中,在 [mysqld] 行下添加以下内容:
bind-address = 127.10.230.440
这不是Java的问题,而是MySQL的问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)