2012-02-03 113 views
2

我有点tomcat代码,通过在tomcat5.x的server.xml中添加以下行,它工作正常。tomcat7.x中的java.util.concurrent.ExecutionException

<Host name="nsncatbranch" debug="0" appBase="D:/svn/branch/rncom/modules/web/clients/web/web/operationsmanager" 
       unpackWARs="false" autoDeploy="false"> 

       <Logger className="org.apache.catalina.logger.FileLogger" 
        prefix="om_log." suffix=".log" 
        timestamp="true"/> 

     <Context path="" docBase="D:/svn/branch/rncom/modules/web/clients/web/web/operationsmanager" debug="0" 
       reloadable="false" crossContext="false" /> 
    </Host> 

但是在tomcat7.x中它给了我下面的错误。

java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].St 
andardHost[nsncatbranch].StandardContext[]] 
     at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:252) 
     at java.util.concurrent.FutureTask.get(FutureTask.java:111) 
     at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1130) 
     at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:782) 
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1568) 
     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1558) 
     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
     at java.lang.Thread.run(Thread.java:722) 
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[nsncatbranch].Stand 
ardContext[]] 
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) 
     ... 7 more 
Caused by: java.lang.IllegalArgumentException: Servlet mapping specifies an unknown servlet name invoker 
     at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:3204) 
     at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:3183) 
     at org.apache.catalina.deploy.WebXml.configureContext(WebXml.java:1302) 
     at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1302) 
     at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:825) 
     at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:300) 
     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:5161) 
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
     ... 7 more 

我没有得到上面的错误,因为我在web.xml中评论过调用者。我正面临下面描述的新错误。

SEVERE: Unable to determine URL for WEB-INF/classes 
javax.naming.NameNotFoundException: Resource /WEB-INF/classes not found 
     at org.apache.naming.resources.BaseDirContext.listBindings(BaseDirContext.java:733) 
     at org.apache.naming.resources.ProxyDirContext.listBindings(ProxyDirContext.java:546) 
     at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1197) 
     at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:825) 
     at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:300) 
     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:5161) 
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
     at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:897) 
     at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:873) 
     at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615) 
     at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1095) 
     at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1617) 
     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
     at java.lang.Thread.run(Thread.java:722) 
+1

你可以发布与该上下文相关联的web.xml吗?这似乎是问题。 – Patrick 2012-02-03 14:20:37

+0

我认为你是对的我刚刚在web.xml中发布了servlet servlet行,并且抛弃了这个错误。现在我面临另一个错误,请验证我编辑的问题。 – chetan 2012-02-06 06:05:27

+0

应用程序是否按预期工作?它看起来像错误是无害的,至少根据这个错误https://issues.apache.org/bugzilla/show_bug.cgi?id=52511 – Patrick 2012-02-06 13:48:25

回答

2

我有同样的问题,帕特里克是正确的问题是在web.xml文件。我删除了下面的标签:

<servlet-mapping> 
    <servlet-name>invoker</servlet-name> 
    <url-pattern>/servlet/*</url-pattern> 
</servlet-mapping> 

它工作正常。所以我的建议是再次检查web.xml文件并确保其中的所有内容都正常。