注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

曹兆领的博客

有志者事竟成,破釜沉舟,百二秦关终属楚!

 
 
 

日志

 
 

tomcat在debian下启动异常严重: StandardServer.await: create[xxxx]: java.net.SocketException: Invalid argument  

2012-11-14 19:14:21|  分类: tomcat |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
今天客户给了一点服务器,让部署一个系统,tomcat+jdk+java,安装成功后,工程不能正常启动,出错信息如下:
SEVERE: StandardServer.await: create[7008]:
java.net.SocketException: Invalid argument
    at java.net.PlainSocketImpl.socketBind(Native Method)
    at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:365)
    at java.net.ServerSocket.bind(ServerSocket.java:319)
    at java.net.ServerSocket.<init>(ServerSocket.java:185)
    at org.apache.catalina.core.StandardServer.await(StandardServer.java:373)
    at org.apache.catalina.startup.Catalina.await(Catalina.java:642)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:602)
    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:288)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Nov 14, 2012 11:54:32 AM org.apache.coyote.http11.Http11Protocol pause
INFO: Pausing Coyote HTTP/1.1 on http-7080
Nov 14, 2012 11:54:32 AM org.apache.catalina.connector.Connector pause
SEVERE: Protocol handler pause failed
java.net.SocketException: Network is unreachable
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
    at java.net.Socket.connect(Socket.java:529)
    at java.net.Socket.connect(Socket.java:478)
    at java.net.Socket.<init>(Socket.java:375)
    at java.net.Socket.<init>(Socket.java:218)
    at org.apache.jk.common.ChannelSocket.unLockSocket(ChannelSocket.java:486)
    at org.apache.jk.common.ChannelSocket.pause(ChannelSocket.java:283)
    at org.apache.jk.server.JkMain.pause(JkMain.java:681)
    at org.apache.jk.server.JkCoyoteHandler.pause(JkCoyoteHandler.java:153)
    at org.apache.catalina.connector.Connector.pause(Connector.java:1073)
    at org.apache.catalina.core.StandardService.stop(StandardService.java:563)
    at org.apache.catalina.core.StandardServer.stop(StandardServer.java:744)
    at org.apache.catalina.startup.Catalina.stop(Catalina.java:628)
    at org.apache.catalina.startup.Catalina$CatalinaShutdownHook.run(Catalina.java:671)
Nov 14, 2012 11:54:33 AM org.apache.catalina.core.StandardService stop
看提示信息network is unreachable,以为是主机配置的原因,检查conf/server.xml中配置文件的defaulthost=localhost,ping后得到 127.0。0.1,查看/etc/hosts发现一切正常。

经过多次调试后,看到之前有人遇到过debian升级后,java对IPV4的支持问题,进行google,找到问题的解决方法:
--------------------华丽的分割线by PeterCao--------------------
一开始看到Network is unreachable的错误,以为是主机名设置问题。添加了主机名到IP的解析,还是不行。。。再怀疑是JDK的问题,可是无论是自己下载Sun JDK的bin安装,还是使用debian package,还是使用OpenJDK,都不行...
最后Google,终于找到问题所在,IPv6的问题。
有两个解决办法:
1、让操作系统也支持IPv4
Java代码

    sudo sed -i 's/net.ipv6.bindv6only\ =\ 1/net.ipv6.bindv6only\ =\ 0/' \ 
    /etc/sysctl.d/bindv6only.conf && sudo invoke-rc.d procps restart 


2、给Java定制参数选项:
Java代码

    JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true" 
--------------------华丽的分割线by PeterCao--------------------
启动,久违的界面终于正常显示了
  评论这张
 
阅读(1383)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017