Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.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.net.NoRouteToHostException:没有到主机的路由_Java_Sql_Jdbc_Jersey_Openshift - Fatal编程技术网

原因:java.net.NoRouteToHostException:没有到主机的路由

原因:java.net.NoRouteToHostException:没有到主机的路由,java,sql,jdbc,jersey,openshift,Java,Sql,Jdbc,Jersey,Openshift,我正试图在openshift上从eclipse部署Jersey项目,我在尾部文件中得到了这个错误,原因是:java.net.NoRouteToHostException:No route to host 以前我有过这样的经历: String host = "jdbc:mysql://$OPENSHIFT_MYSQL_DB_HOST:$OPENSHIFT_MYSQL_DB_PORT/bustrackerserver" 我得到了这个错误: 'java.lang.NumberFormatExcept

我正试图在openshift上从eclipse部署Jersey项目,我在尾部文件中得到了这个错误,原因是:java.net.NoRouteToHostException:No route to host

以前我有过这样的经历:

String host = "jdbc:mysql://$OPENSHIFT_MYSQL_DB_HOST:$OPENSHIFT_MYSQL_DB_PORT/bustrackerserver"
我得到了这个错误:

'java.lang.NumberFormatException:用于输入字符串:“OPENSHIFT\u MYSQL\u DB\u端口”'

我已经ping了这个ip地址127.10.230.440,我得到了回复 我检查了一些端口80803306是否正在从本地的mashine使用,但它们只是从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}/serv‌​erside";
    //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未在TCP/IP上侦听,因此您的连接尝试失败。你回答了你的问题,你说:

我检查了一些端口80803306是否正在从本地的mashine使用,但它们只是从eclipse使用

换句话说,MySQL没有在本地主机上侦听。要以另一种方式确认这一点,请尝试从命令提示符连接到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问题。

您知道127.x.x.x地址是环回地址吗?它们不会离开本地机/虚拟机。@StephenC:hm我真的不知道这意味着什么,但我用环境变量尝试了一下,得到了以下错误java.lang.NumberFormatException:对于输入字符串:“OPENSHIFT\u MYSQL\u DB\u PORT我还需要用什么来替换它?我只想在servlet容器中部署我的Jersey项目Tomcat 7、phpmyadmin、MYSQL 5.5。这是用OPENSHIFT管理的吗?这个链接解释了什么是环回地址:。鉴于你不认识这个术语,我怀疑这是你问题的根本原因lem是我必须使用System.getenv.get来设置主机字符串`string host=jdbc:mysql://+System.getenv.getOPENSHIFT_mysql_DB_host+:+System.getenv.getOPENSHIFT_mysql_DB_PORT+/serverSide;`我试图从命令提示符comands执行命令,但我得到了类似命令mysql无法重新登录的问题我的bind address=127.0.0.1文件我将其更改为bind address=127.10.230.440,但没有任何更改。但我注意到,我也尝试从XAMPP访问phpmyadmin,但我无法再进行访问。我认为这是我在eclipse中安装openshift插件时的情况,而不是因为这一行在我设置此lin后被更改为bind address=127.10.230.440e恢复到旧状态,但我仍然无法访问我的phpmyadmin。这是一个问题,因为XAMMP也在端口3306上列出了吗?我现在在XAMMP的GUI上看到了它。我正在使用widnows 8。尝试杀死XAMMP,看看会发生什么。你真的应该尝试从命令行连接到MySQL,因为你想排除任何潜在的问题如果您不能从命令行连接,那么问题仍然在于MySQL。