2013-08-31 74 views
0

我的web.xml文件有问题。 我使用Web模块版本创建了一个eclipse动态web项目:3.0 默认情况下,我没有自己创建的web.xml文件。Tomcat 7.0.42不能在eclipse中启动

现在,当我尝试运行我得到这个错误的项目:通过清洁服务器

Aug 31, 2013 3:53:47 PM org.apache.catalina.core.AprLifecycleListener init 
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre7\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Program Files\MySQL\MySQL Server 5.5\bin;C:\Program Files (x86)\PharosSystems\Core;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;. 
Aug 31, 2013 3:53:48 PM org.apache.tomcat.util.digester.SetPropertiesRule begin 
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:AJAX_J2EE' did not find a matching property. 
Aug 31, 2013 3:53:48 PM org.apache.coyote.AbstractProtocol init 
INFO: Initializing ProtocolHandler ["http-bio-8080"] 
Aug 31, 2013 3:53:48 PM org.apache.coyote.AbstractProtocol init 
INFO: Initializing ProtocolHandler ["ajp-bio-8009"] 
Aug 31, 2013 3:53:48 PM org.apache.catalina.startup.Catalina load 
INFO: Initialization processed in 792 ms 
Aug 31, 2013 3:53:48 PM org.apache.catalina.core.StandardService startInternal 
INFO: Starting service Catalina 
Aug 31, 2013 3:53:48 PM org.apache.catalina.core.StandardEngine startInternal 
INFO: Starting Servlet Engine: Apache Tomcat/7.0.42 
Aug 31, 2013 3:53:48 PM org.apache.catalina.core.ContainerBase startInternal 
SEVERE: A child container failed during start 
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/AJAX_J2EE]] 
at java.util.concurrent.FutureTask$Sync.innerGet(Unknown Source) 
at java.util.concurrent.FutureTask.get(Unknown Source) 
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123) 
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:800) 
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) 
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) 
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) 
at java.util.concurrent.FutureTask.run(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
at java.lang.Thread.run(Unknown Source) 
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/AJAX_J2EE]] 
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) 
... 7 more 
Caused by: java.lang.IllegalArgumentException: The servlets named [testController] and [servlet.testController] are both mapped to the url-pattern [/testController] which is not permitted 
at org.apache.catalina.deploy.WebXml.addServletMapping(WebXml.java:335) 
at  org.apache.catalina.startup.ContextConfig.processAnnotationWebServlet(ContextConfig.java:2450) 
at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2132) 
at org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2093) 
at org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2086) 
at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1293) 
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:878) 
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:376) 
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) 
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) 
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5322) 
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
... 7 more 

Aug 31, 2013 3:53:48 PM org.apache.catalina.core.ContainerBase startInternal 
SEVERE: A child container failed during start 
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]] 
at java.util.concurrent.FutureTask$Sync.innerGet(Unknown Source) 
at java.util.concurrent.FutureTask.get(Unknown Source) 
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123) 
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:302) 
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443) 
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:732) 
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
at org.apache.catalina.startup.Catalina.start(Catalina.java:691) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
at java.lang.reflect.Method.invoke(Unknown Source) 
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: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]] 
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) 
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) 
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) 
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) 
at java.util.concurrent.FutureTask.run(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
at java.lang.Thread.run(Unknown Source) 
Caused by: org.apache.catalina.LifecycleException: A child container failed during start 
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131) 
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:800) 
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
... 7 more 

Aug 31, 2013 3:53:48 PM org.apache.catalina.startup.Catalina start 
SEVERE: The required Server component failed to start so Tomcat is unable to start. 
org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]] 
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) 
at org.apache.catalina.startup.Catalina.start(Catalina.java:691) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
at java.lang.reflect.Method.invoke(Unknown Source) 
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: Failed to start component [StandardService[Catalina]] 
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) 
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:732) 
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
... 7 more 
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina]] 
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) 
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443) 
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
... 9 more 
Caused by: org.apache.catalina.LifecycleException: A child container failed during start 
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131) 
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:302) 
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
... 11 more 

Aug 31, 2013 3:53:48 PM org.apache.coyote.AbstractProtocol pause 
INFO: Pausing ProtocolHandler ["http-bio-8080"] 
Aug 31, 2013 3:53:48 PM org.apache.coyote.AbstractProtocol pause 
INFO: Pausing ProtocolHandler ["ajp-bio-8009"] 
Aug 31, 2013 3:53:48 PM org.apache.catalina.core.StandardService stopInternal 
INFO: Stopping service Catalina 
Aug 31, 2013 3:53:48 PM org.apache.coyote.AbstractProtocol destroy 
INFO: Destroying ProtocolHandler ["http-bio-8080"]  
Aug 31, 2013 3:53:48 PM org.apache.coyote.AbstractProtocol destroy 
INFO: Destroying ProtocolHandler ["ajp-bio-8009"] 

我有同样的问题,早期与其他项目我的办公室机器,我能对付的在日食。

现在我已经清理了我的服务器和删除的服务器,但结果相同。如果我从web.xml项目运行中删除servlet模块。这就是为什么我猜想问题是与servlet映射,但我不能看到错误。

我的web.xml中:

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> 
    <display-name>AJAX_J2EE</display-name> 
    <welcome-file-list> 
    <welcome-file>/pages/index.html</welcome-file>  
    </welcome-file-list> 
    <servlet> 
    <display-name>testController</display-name> 
    <servlet-name>testController</servlet-name> 
    <servlet-class>servlet.testController</servlet-class> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>testController</servlet-name> 
    <url-pattern>/testController</url-pattern> 
    </servlet-mapping> 
    </web-app> 

任何帮助表示赞赏。在此先感谢:)

+0

从日志: 引起:java.lang.IllegalArgumentException异常:命名的servlet的[的TestController]和[servlet.testController]都映射到这是url-pattern的[/的TestController]不允许 at org.apache.catalina.deploy.WebXml.addServletMapping(WebXml.java:335) 我可以想象你没有发布完整的web.xml。你能看看吗? – blackbird014

+0

@ blackbird014 ..这是我完整的web.xml。我省略了刚刚更新的根节点。 我只在xml文件中映射了一个servlet,并且只映射了一个servlet src/servlet/testController.java –

+1

并且您有一个包调用servlet,其中包含一个类testController,然后看起来正确...尝试仅调用该包而不是servlet,并使用testController .java,TestController.java开头的大写字母应该按照惯例。我没有其他想法。 – blackbird014

回答

0

我发现我的错误从here

我创造使用“创建的Servlet”向导还增加了一个@WebServlet(/ servletName)注释和在web.xml没有条目

我然后创建在手动web.xml中条目,其复制的条目在Servlet的运行时间。

所以你必须用Servlet 3.0做两者中的任何一个。

  1. 使用注释,如:

    @WebServlet("/testController") 
    public class testController extends HttpServlet { } 
    

    OR

  2. 创建你的servlet一个web.xml条目。

了解更多:Servlet 3.0 Annotations

+0

如果您出于某种原因想要保留web.xml中的配置和注释,请在注释中输入: @WebServlet(name =“YourServletName”,urlPatterns = {“/YourURL“}) 其中yourServletName和YourURL是web.xml中给出的 – tutak

3

在这里,在pom.xml中你已经错过了在Servlet的依赖写入(<scope>provided</scope>)所以在servlet的依赖性,你只需要在pom.xml中添加 (<scope>provided</scope>)例如<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
“或” <dependency>
<groupId>servletapi</groupId>
<artifactId>servletapi</artifactId>
<version>2.4</version>
<scope>provided</scope>
</dependency> 该解决方案适用于我。

谢谢