Background: A newly developed small project deployed to the test environment, always deployment failure, the visual error is that the error log has Dubbo port is occupied. The project is SPRINGMVC framework +tomcat.
The error log is:
[0518 19:36:41 354 ERROR] [Main] Web.context.contextloader-context initialization failed
Com.alibaba.dubbo.rpc.RpcException:Fail to start server (url:dubbo://192.168.1.121:18191/ Com.tongbanjie.security.facade.api.AuthCodeValidationFacade?
Anyhost=true&application=security&channel.readonly.sent=true&codec=dubbo&default.retries=0 &default.timeout=30000&dubbo=2.5.3&heartbeat=60000&interface
=com.tongbanjie.security.facade.api.authcodevalidationfacade&methods=verifyauthcode&pid=16819& revision=1.0-snapshot&side=provider×tamp=1463571401
299&version=2.0) Failed to bind Nettyserver on/192.168.1.121:18191, cause:failed to bind to:/0.0.0.0:18191
At Com.alibaba.dubbo.rpc.protocol.dubbo.DubboProtocol.createServer (dubboprotocol.java:289)
At Com.alibaba.dubbo.rpc.protocol.dubbo.DubboProtocol.openServer (dubboprotocol.java:266)
At Com.alibaba.dubbo.rpc.protocol.dubbo.DubboProtocol.export (dubboprotocol.java:253)
At Com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper.export (protocolfilterwrapper.java:55)
At Com.alibaba.dubbo.rpc.protocol.ProtocolListenerWrapper.export (protocollistenerwrapper.java:56)
At Com.alibaba.dubbo.rpc.protocol$adpative.export (Protocol$adpative.java)
At Com.alibaba.dubbo.registry.integration.RegistryProtocol.doLocalExport (registryprotocol.java:153)
At Com.alibaba.dubbo.registry.integration.RegistryProtocol.export (registryprotocol.java:107)
At Com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper.export (protocolfilterwrapper.java:53)
At Com.alibaba.dubbo.rpc.protocol.ProtocolListenerWrapper.export (protocollistenerwrapper.java:54)
At Com.alibaba.dubbo.rpc.protocol$adpative.export (Protocol$adpative.java)
At Com.alibaba.dubbo.config.ServiceConfig.doExportUrlsFor1Protocol (serviceconfig.java:485)
At Com.alibaba.dubbo.config.ServiceConfig.doExportUrls (serviceconfig.java:281)
At Com.alibaba.dubbo.config.ServiceConfig.doExport (serviceconfig.java:242)
At Com.alibaba.dubbo.config.ServiceConfig.export (serviceconfig.java:143)
At Com.alibaba.dubbo.config.spring.ServiceBean.onApplicationEvent (servicebean.java:109)
At Org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent ( SIMPLEAPPLICATIONEVENTMULTICASTER.JAVA:96)
At Org.springframework.context.support.AbstractApplicationContext.publishEvent (Abstractapplicationcontext.java : 334)
At Org.springframework.context.support.AbstractApplicationContext.finishRefresh (Abstractapplicationcontext.java : 948)
At Org.springframework.context.support.AbstractApplicationContext.refresh (abstractapplicationcontext.java:482)
At Org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext (Contextloader.java : 410)
At Org.springframework.web.context.ContextLoader.initWebApplicationContext (contextloader.java:306)
At Org.springframework.web.context.ContextLoaderListener.contextInitialized (contextloaderlistener.java:112)
At Org.apache.catalina.core.StandardContext.listenerStart (standardcontext.java:4210)
At Org.apache.catalina.core.StandardContext.start (standardcontext.java:4709)
At Org.apache.catalina.core.ContainerBase.addChildInternal (containerbase.java:799)
At Org.apache.catalina.core.ContainerBase.addChild (containerbase.java:779)
At Org.apache.catalina.core.StandardHost.addChild (standardhost.java:583)
At Org.apache.catalina.startup.HostConfig.deployDirectory (hostconfig.java:1079)
At Org.apache.catalina.startup.HostConfig.deployDirectories (hostconfig.java:1002)
At Org.apache.catalina.startup.HostConfig.deployApps (hostconfig.java:506)
At Org.apache.catalina.startup.HostConfig.start (hostconfig.java:1317)
At Org.apache.catalina.startup.HostConfig.lifecycleEvent (hostconfig.java:324)
At Org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent (lifecyclesupport.java:142)
At Org.apache.catalina.core.ContainerBase.start (containerbase.java:1065)
At Org.apache.catalina.core.StandardHost.start (standardhost.java:822)
At Org.apache.catalina.core.ContainerBase.start (containerbase.java:1057)
At Org.apache.catalina.core.StandardEngine.start (standardengine.java:463)
At Org.apache.catalina.core.StandardService.start (standardservice.java:525)
At Org.apache.catalina.core.StandardServer.start (standardserver.java:754)
At Org.apache.catalina.startup.Catalina.start (catalina.java:595)
At Sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
At Sun.reflect.NativeMethodAccessorImpl.invoke (nativemethodaccessorimpl.java:57)
At Sun.reflect.DelegatingMethodAccessorImpl.invoke (delegatingmethodaccessorimpl.java:43)
At Java.lang.reflect.Method.invoke (method.java:601)
At Org.apache.catalina.startup.Bootstrap.start (bootstrap.java:289)
At Sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
At Sun.reflect.NativeMethodAccessorImpl.invoke (nativemethodaccessorimpl.java:57)
At Sun.reflect.DelegatingMethodAccessorImpl.invoke (delegatingmethodaccessorimpl.java:43)
At Java.lang.reflect.Method.invoke (method.java:601)
At Org.apache.commons.daemon.support.DaemonLoader.start (daemonloader.java:243)
caused by:com.alibaba.dubbo.remoting.RemotingException:Failed to bind Nettyserver on/192.168.1.121:18191, Cause: Failed to bind to:/0.0.0.0:18191
At Com.alibaba.dubbo.remoting.transport.abstractserver.<init> (abstractserver.java:72)
At Com.alibaba.dubbo.remoting.transport.netty.nettyserver.<init> (nettyserver.java:63)
At Com.alibaba.dubbo.remoting.transport.netty.NettyTransporter.bind (nettytransporter.java:33)
At Com.alibaba.dubbo.remoting.transporter$adpative.bind (Transporter$adpative.java)
At Com.alibaba.dubbo.remoting.Transporters.bind (transporters.java:48)
At Com.alibaba.dubbo.remoting.exchange.support.header.HeaderExchanger.bind (headerexchanger.java:41)
At Com.alibaba.dubbo.remoting.exchange.Exchangers.bind (exchangers.java:63)
At Com.alibaba.dubbo.rpc.protocol.dubbo.DubboProtocol.createServer (dubboprotocol.java:287)
... More
caused by:org.jboss.netty.channel.ChannelException:Failed to bind to:/0.0.0.0:18191
At Org.jboss.netty.bootstrap.ServerBootstrap.bind (serverbootstrap.java:303)
At Com.alibaba.dubbo.remoting.transport.netty.NettyServer.doOpen (nettyserver.java:94)
At Com.alibaba.dubbo.remoting.transport.abstractserver.<init> (abstractserver.java:67)
... More
Caused by:java.net.BindException: Address already in use
At Sun.nio.ch.Net.bind0 (Native Method)
At Sun.nio.ch.Net.bind (net.java:344)
At Sun.nio.ch.Net.bind (net.java:336)
At Sun.nio.ch.ServerSocketChannelImpl.bind (serversocketchannelimpl.java:199)
At Sun.nio.ch.ServerSocketAdaptor.bind (serversocketadaptor.java:74)
At Org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink.bind (nioserversocketpipelinesink.java:148)
At Org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink.handleServerSocket ( NIOSERVERSOCKETPIPELINESINK.JAVA:100)
At Org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink.eventSunk (nioserversocketpipelinesink.java:74 )
At Org.jboss.netty.channel.Channels.bind (channels.java:468)
At Org.jboss.netty.channel.AbstractChannel.bind (abstractchannel.java:192)
At Org.jboss.netty.bootstrap.serverbootstrap$binder.channelopen (serverbootstrap.java:348)
At Org.jboss.netty.channel.Channels.fireChannelOpen (channels.java:176)
At Org.jboss.netty.channel.socket.nio.nioserversocketchannel.<init> (nioserversocketchannel.java:85)
At Org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory.newChannel ( nioserversocketchannelfactory.java:142)
At Org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory.newChannel ( NIOSERVERSOCKETCHANNELFACTORY.JAVA:90)
At Org.jboss.netty.bootstrap.ServerBootstrap.bind (serverbootstrap.java:282)
... More
The first thought is to see what takes up 18191 ports:
[Root@centos02 app]# Netstat-tunlp|grep 18191
TCP 0 0::: 18191:::* LISTEN 23049/jsvc.exec
[Root@centos02 app]# Ps-ef|grep 23049
Tomcat 23049 23048 0 May18? 00:04:14 Jsvc.exec-java-home/usr/java/jdk1.7.0_04-user Tomcat ...
Taking 18191 is the Tomcat instance that deploys the app.
Kill-9 Kill instance, restart, same error.
Colleague changed Port 28191, or reported a similar error, just became 28191 port is occupied.
The error log is the only port that is using a fault message, so look at the other logs.
Tomcat Log, Catalina.log:
May 18, 2016 7:36:36 pm Org.apache.catalina.loader.WebappClassLoader validatejarfile
Info: Validatejarfile (/data/www/root/security/security/web-inf/lib/servlet-api-2.5.jar)-jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offendi
Ng Class:javax/servlet/servlet.class
May 18, 2016 7:36:41 pm Org.apache.catalina.core.StandardContext start
Severity: Error Listenerstart
May 18, 2016 7:36:41 pm Org.apache.catalina.core.StandardContext start
Severity: Context [/security] startup failed due to previous errors
May 18, 2016 7:36:41 pm Org.apache.catalina.loader.WebappClassLoader clearreferencesjdbc
Critical: the Web Applicatio