2013-02-24 73 views
1

我已经开始学习Servlets,所以我从here下载了apache tomcat 7.x zip文件(核心 - > zip)。我把它提取到我的目录(D :),然后我刚刚设置了JAVA_HOME系统变量的值为C:\Program Files\Java\jdk1.6.0(我的电脑正在运行在windows 7 Home basic)。无法开始使用Apache Tomcat

我已启动服务器startup.bat文件在bin文件夹中。当我试图访问localhost:8080时,它总是在浏览器上显示unable to connect。所以我将端口号更改为9999,server.xml并重新启动它。它再次表示无法在我的浏览器中连接。当我启动服务器时,它会在命令行界面中显示以下内容。有人可以帮我解决这个问题,并让我的服务器工作?

通过观察下面的命令外壳,我只能找到这条线,似乎给出了一些问题的指示:Failed to initialize component [Standard Server[8005]]。我仍然不知道它有什么用无法连接到做..

Feb 24, 2013 4:58:02 PM org.apache.catalina.core.AprLifecycleListener init 
INFO: The APR based Apache Tomcat Native library which allows optimal performanc 
e in production environments was not found on the java.library.path: C:\Program 
Files\Java\jdk1.6.0\bin;.;C:\Windows\system32;C:\Windows;C:\Windows\system32;C:\ 
Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ 
Program Files\Java\jdk1.6.0\bin 
Feb 24, 2013 4:58:02 PM org.apache.catalina.startup.Catalina load 
SEVERE: Catalina.start 
org.apache.catalina.LifecycleException: Failed to initialize component [Standard 
Server[8005]] 
     at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:106) 
     at org.apache.catalina.startup.Catalina.load(Catalina.java:633) 
     at org.apache.catalina.startup.Catalina.load(Catalina.java:658) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. 
java:39) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces 
sorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:585) 
     at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:281) 
     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455) 
Caused by: org.apache.catalina.LifecycleException: Failed to initialize componen 
t [StandardService[Catalina]] 
     at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:106) 
     at org.apache.catalina.core.StandardServer.initInternal(StandardServer.j 
ava:814) 
     at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) 
     ... 8 more 
Caused by: org.apache.catalina.LifecycleException: Failed to initialize componen 
t [StandardEngine[Catalina]] 
     at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:106) 
     at org.apache.catalina.core.StandardService.initInternal(StandardService 
.java:544) 
     at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) 
     ... 10 more 
Caused by: java.lang.NoSuchMethodError: java.util.concurrent.ThreadPoolExecutor. 
allowCoreThreadTimeOut(Z)V 
     at org.apache.catalina.core.ContainerBase.initInternal(ContainerBase.jav 
a:1083) 
     at org.apache.catalina.core.StandardEngine.initInternal(StandardEngine.j 
ava:283) 
     at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) 
     ... 12 more 
Feb 24, 2013 4:58:02 PM org.apache.catalina.startup.Catalina load 
INFO: Initialization processed in 532 ms 
Feb 24, 2013 4:58:02 PM org.apache.coyote.AbstractProtocol pause 
INFO: Pausing ProtocolHandler ["http-bio-9999"] 
Feb 24, 2013 4:58:02 PM org.apache.coyote.AbstractProtocol pause 
INFO: Pausing ProtocolHandler ["ajp-bio-8009"] 
Feb 24, 2013 4:58:02 PM org.apache.catalina.core.StandardService stopInternal 
INFO: Stopping service Catalina 
Feb 24, 2013 4:58:03 PM org.apache.catalina.startup.Catalina start 
SEVERE: Catalina.start: 
org.apache.catalina.LifecycleException: Failed to stop component [StandardServer 
[8005]] 
     at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:236) 
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:141) 
     at org.apache.catalina.startup.Catalina.start(Catalina.java:684) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. 
java:39) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces 
sorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:585) 
     at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322) 
     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:456) 
Caused by: org.apache.catalina.LifecycleException: An invalid Lifecycle transiti 
on was attempted ([before_stop]) for component [org.apache.catalina.deploy.Namin 
[email protected]] in state [INITIALIZED] 
     at org.apache.catalina.util.LifecycleBase.invalidTransition(LifecycleBas 
e.java:409) 
     at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:219) 
     at org.apache.catalina.core.StandardServer.stopInternal(StandardServer.j 
ava:756) 
     at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232) 
     ... 8 more 
Feb 24, 2013 4:58:03 PM org.apache.catalina.startup.Catalina start 
INFO: Server startup in 11 ms 
+0

你的系统上是否有旧的Java版本?什么'java -version'显示? – 2013-02-24 17:36:23

+0

你是否更改过任何其他配置文件?你有你更改的配置文件的备份吗? Tomcat通常可以直接使用,并且对于初学者不推荐更改配置。 – NickJ 2013-02-24 17:43:34

+0

@LukeTaylor不,我没有更老的java版本。我有Java 1.6。 – rick 2013-02-25 03:38:08

回答

0

一件事我注意到它的堆栈跟踪是这样的:

Caused by: java.lang.NoSuchMethodError: java.util.concurrent.ThreadPoolExecutor.allowCoreThreadTimeOut(Z)V 

看的Javadoc的ThreadPoolExecutor,看起来allowCoreThreatTimeOut(boolean)方法是在Java 6中引入的。它在早期版本中不存在。上面的错误正是你在过时的JVM上运行针对版本6+设计的Java程序时发现的。

当你第一次启动tomcat,你应该有线路是这样的:

Using CATALINA_BASE: /home/nick/tools/apache-tomcat-6.0.35 
Using CATALINA_HOME: /home/nick/tools/apache-tomcat-6.0.35 
Using CATALINA_TMPDIR: /home/nick/tools/apache-tomcat-6.0.35/temp 
Using JRE_HOME:  /usr 
Using CLASSPATH:  /home/nick/tools/apache-tomcat-6.0.35/bin/bootstrap.jar 

看看在JRE_HOME目录,看看你会得到什么。也许你已经安装了Java 5,尽管命令行看到了Java 6的安装。安装多个Java版本可能会导致混淆。