• MyEclipse5.5启动Tomcat5.x出错

    2008-08-23 | Tag:MyEclipse Tomcat QQMusic

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://bonfire.blogbus.com/logs/28036616.html

    刚才通过MyEclipse5.5启动Tomcat,结果错误弹出对话框,大意是配置错误,查了下原因。启动Application Server得用JDK(a full JDK installation),而不是JRE。

    JDK Vertural Machine must specify a full JDK installation.
    Specifying a JRE will result in an startup exception.

    可是我装了的就是JDK6,而不是JRE6。

    解决办法:

    在MyEclipse - 窗口 - 首选项 - MyEclipse - Application Server - Tomcat - Tomcat5.x - JDK 里添加Tomcat JDK,在右边选 Add...,弹出的对话框里的JRE主目录里定位到安装的JDK的目录(JRE是它的子文件夹),点确定。

    至此,问题本来已经彻底解决,不想出了一个意外。

    在Servers视图里,选中Tomcat 5.x,Run Server。不幸,控制台抛出大量异常。

    2008-8-22 23:52:57 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
    信息: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\java\java6\bin;D:\java\apache-tomcat-5.5.26\bin
    2008-8-22 23:52:57 org.apache.coyote.http11.Http11BaseProtocol init
    严重: Error initializing endpoint
    java.net.BindException: Address already in use: JVM_Bind:8080
        at org.apache.tomcat.util.net.PoolTcpEndpoint.initEndpoint(PoolTcpEndpoint.java:298)
        at org.apache.coyote.http11.Http11BaseProtocol.init(Http11BaseProtocol.java:139)
        at org.apache.catalina.connector.Connector.initialize(Connector.java:1017)
        at org.apache.catalina.core.StandardService.initialize(StandardService.java:578)
        at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:782)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:504)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:524)
        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.load(Bootstrap.java:267)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
    2008-8-22 23:52:57 org.apache.catalina.startup.Catalina load
    严重: Catalina.start
    LifecycleException:  Protocol handler initialization failed: java.net.BindException: Address already in use: JVM_Bind:8080
        at org.apache.catalina.connector.Connector.initialize(Connector.java:1019)
        at org.apache.catalina.core.StandardService.initialize(StandardService.java:578)
        at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:782)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:504)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:524)
        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.load(Bootstrap.java:267)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
    2008-8-22 23:52:57 org.apache.catalina.startup.Catalina load
    信息: Initialization processed in 578 ms
    2008-8-22 23:52:57 org.apache.catalina.core.StandardService start
    信息: Starting service Catalina
    2008-8-22 23:52:57 org.apache.catalina.core.StandardEngine start
    信息: Starting Servlet Engine: Apache Tomcat/5.5.26
    2008-8-22 23:52:57 org.apache.catalina.core.StandardHost start
    信息: XML validation disabled
    2008-8-22 23:52:58 org.apache.catalina.core.ApplicationContext log
    信息: org.apache.webapp.balancer.BalancerFilter: init(): ruleChain: [org.apache.webapp.balancer.RuleChain: [org.apache.webapp.balancer.rules.URLStringMatchRule: Target string: News / Redirect URL: http://www.cnn.com], [org.apache.webapp.balancer.rules.RequestParameterRule: Target param name: paramName / Target param value: paramValue / Redirect URL: http://www.yahoo.com], [org.apache.webapp.balancer.rules.AcceptEverythingRule: Redirect URL: http://jakarta.apache.org]]
    2008-8-22 23:52:58 org.apache.catalina.core.ApplicationContext log
    信息: ContextListener: contextInitialized()
    2008-8-22 23:52:58 org.apache.catalina.core.ApplicationContext log
    信息: SessionListener: contextInitialized()
    2008-8-22 23:52:58 org.apache.catalina.core.ApplicationContext log
    信息: ContextListener: contextInitialized()
    2008-8-22 23:52:58 org.apache.catalina.core.ApplicationContext log
    信息: SessionListener: contextInitialized()
    2008-8-22 23:52:58 org.apache.coyote.http11.Http11BaseProtocol start
    严重: Error starting endpoint
    java.net.BindException: Address already in use: JVM_Bind:8080
        at org.apache.tomcat.util.net.PoolTcpEndpoint.initEndpoint(PoolTcpEndpoint.java:298)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.startEndpoint(PoolTcpEndpoint.java:313)
        at org.apache.coyote.http11.Http11BaseProtocol.start(Http11BaseProtocol.java:151)
        at org.apache.coyote.http11.Http11Protocol.start(Http11Protocol.java:76)
        at org.apache.catalina.connector.Connector.start(Connector.java:1090)
        at org.apache.catalina.core.StandardService.start(StandardService.java:457)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
        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:295)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
    2008-8-22 23:52:58 org.apache.catalina.startup.Catalina start
    严重: Catalina.start:
    LifecycleException:  service.getName(): "Catalina";  Protocol handler start failed: java.net.BindException: Address already in use: JVM_Bind:8080
        at org.apache.catalina.connector.Connector.start(Connector.java:1097)
        at org.apache.catalina.core.StandardService.start(StandardService.java:457)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
        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:295)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
    2008-8-22 23:52:58 org.apache.catalina.startup.Catalina start
    信息: Server startup in 1141 ms

    第一个异常java.net.BindException: Address already in use: JVM_Bind:8080,猜测应该是端口已经被占用了吧。于是搜了一下,下载一个叫TCPView的小软件。不出所料,Tomcat的默认端口8080果然被占了——那个进程竟然是QQMusic.exe。我晕哦,QQMusic.exe居然占了6个端口。8080端口的状态为LISTENING。今天第一次用QQMusic,竟然就给人添乱!

    关掉QQMusic.exe,重启Tomcat,运行成功,没有抛出异常,输出日志为:

    2008-8-22 23:59:39 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
    信息: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\java\java6\bin;D:\java\apache-tomcat-5.5.26\bin
    2008-8-22 23:59:39 org.apache.coyote.http11.Http11BaseProtocol init
    信息: Initializing Coyote HTTP/1.1 on http-8080
    2008-8-22 23:59:39 org.apache.catalina.startup.Catalina load
    信息: Initialization processed in 562 ms
    2008-8-22 23:59:40 org.apache.catalina.core.StandardService start
    信息: Starting service Catalina
    2008-8-22 23:59:40 org.apache.catalina.core.StandardEngine start
    信息: Starting Servlet Engine: Apache Tomcat/5.5.26
    2008-8-22 23:59:40 org.apache.catalina.core.StandardHost start
    信息: XML validation disabled
    2008-8-22 23:59:40 org.apache.catalina.core.ApplicationContext log
    信息: org.apache.webapp.balancer.BalancerFilter: init(): ruleChain: [org.apache.webapp.balancer.RuleChain: [org.apache.webapp.balancer.rules.URLStringMatchRule: Target string: News / Redirect URL: http://www.cnn.com], [org.apache.webapp.balancer.rules.RequestParameterRule: Target param name: paramName / Target param value: paramValue / Redirect URL: http://www.yahoo.com], [org.apache.webapp.balancer.rules.AcceptEverythingRule: Redirect URL: http://jakarta.apache.org]]
    2008-8-22 23:59:40 org.apache.catalina.core.ApplicationContext log
    信息: ContextListener: contextInitialized()
    2008-8-22 23:59:40 org.apache.catalina.core.ApplicationContext log
    信息: SessionListener: contextInitialized()
    2008-8-22 23:59:40 org.apache.catalina.core.ApplicationContext log
    信息: ContextListener: contextInitialized()
    2008-8-22 23:59:40 org.apache.catalina.core.ApplicationContext log
    信息: SessionListener: contextInitialized()
    2008-8-22 23:59:40 org.apache.coyote.http11.Http11BaseProtocol start
    信息: Starting Coyote HTTP/1.1 on http-8080
    2008-8-22 23:59:41 org.apache.jk.common.ChannelSocket init
    信息: JK: ajp13 listening on /0.0.0.0:8009
    2008-8-22 23:59:41 org.apache.jk.server.JkMain start
    信息: Jk running ID=0 time=0/15  config=null
    2008-8-22 23:59:41 org.apache.catalina.storeconfig.StoreLoader load
    信息: Find registry server-registry.xml at classpath resource
    2008-8-22 23:59:41 org.apache.catalina.startup.Catalina start
    信息: Server startup in 1906 ms

    Tomcat是正常运行了,不过让人郁闷的是,QQMusic.exe进程依然运行,而且占了两个端口,过了几分钟剩一个了,状态是FIN_WAIT1,占用端口为3654,远程地址192.24.57.59.broad.qz.fj.dynamic.163data.com.cn:12146。再过了三四分钟,QQMusic.exe终于全部终止。顺便看了一下,TM.exe也有7个进程。

    不过,那条最长的信息里,竟然有CNN,Yahoo以及Jakarta的主页,有点小意外。





    引用地址: