• Tomcat启动报错:java.net.BindException: Cannot assign requested address: JVM_Bind


      Tomcat启动报错:java.net.BindException: Cannot assign requested address: JVM_Bind

      Tomcat Cannot assign requested address: JVM_Bind 非端口占用冲突

    严重: StandardServer.await: create[8005]: 
    java.net.BindException: Cannot assign requested address: JVM_Bind
        at java.net.PlainSocketImpl.socketBind(Native Method)
        at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:359)
        at java.net.ServerSocket.bind(ServerSocket.java:319)
        at java.net.ServerSocket.(ServerSocket.java:185)
        at org.apache.catalina.core.StandardServer.await(StandardServer.java:406)
        at org.apache.catalina.startup.Catalina.await(Catalina.java:676)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:628)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)

      可能是Tomcat需要绑定的端口或某些资源其他应用程序占用

      使用DOS命令netstat -an查看被占用的端口,并未发现有任何程序占用Tomcat使用的相关端口(例如8080),并且将Tomcat安装目录下的conf/server.xml文件中的端口改为其他端口,再次运行也无法正常启动。

      通过多种测试,可以初步判断应该不是端口占用引起的问题。如果不是端口占用的问题的话,那么就要考虑是否是IP绑定的问题了。

      经过检查,在服务器计算机的C:WindowsSystem32driversetchosts文件中发现如下部分内容:

    127.0.0.1       localhost
    169.196.254.14    localhost

      169.196.254.14是一个不存在的本地IP地址,将hosts文件中的第二行内容169.196.254.14 localhost去掉后,再次启动Tomcat,发现运行正常!

      在服务器领域,一台计算机配置多个IP地址是比较常见的。Tomcat在启动时,会根据配置去获取所有的IP地址,并且进行逐个绑定,当发现需要绑定的IP地址不存在时,将会触发上述异常,从而导致无法正常启动。

    //输出localhost映射的所有IP地址
    InetAddress[] ips = InetAddress.getAllByName("localhost");
    if (ips != null) {
        for (InetAddress ip : ips) {
            System.out.println(ip.getHostAddress());
        }
    }
    /* 修改上述hosts文件前,输出:
    * 169.196.254.14
    * 127.0.0.1
    * 修改文件后,输出
    * 127.0.0.1
    */

     

  • 相关阅读:
    MySQL的sql_mode合理设置
    Redis
    启动Jupyter Notebook提示ImportError: DLL load failed: 找不到指定的模块。
    Linux目录结构
    修改mysql密码报错: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '
    springmvc运行原理
    博客园美化
    数据搜索
    git
    window
  • 原文地址:https://www.cnblogs.com/lojun/p/7652835.html
Copyright © 2020-2023  润新知