【发布时间】:2015-05-14 13:00:02
【问题描述】:
我正在尝试在 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!";
}
}
【问题讨论】:
-
您知道
127.x.x.x地址是环回地址吗?他们不会离开本地机器/虚拟机。 -
@StephenC:嗯,我真的不知道这是什么意思,但我已经用环境变量尝试过了,我得到了这个错误
java.lang.NumberFormatException: For input string: “OPENSHIFT_MYSQL_DB_PORT我还需要用什么来替换它? -
我只想在 servlet 容器中部署我的 Jersey 项目(Tomcat 7、phpmyadmin、mysql 5.5)。这可以用 openshift 管理吗?
-
此链接解释了环回地址是什么:tcpipguide.com/free/t_IPReservedPrivateandLoopbackAddresses.htm。鉴于您不认识该术语,我怀疑这是您问题的根本原因。
-
问题是我不得不使用
System.getenv().get()来设置主机字符串` String host = "jdbc:mysql://" + System.getenv().get("OPENSHIFT_MYSQL_DB_HOST") + " :" + System.getenv().get("OPENSHIFT_MYSQL_DB_PORT") + "/serverSide";`
标签: java sql jdbc jersey openshift