gpt4 book ai didi

java - 如果 WEB-INF/classes 目录存在,Tomcat 服务器将不会启动

转载 作者:行者123 更新时间:2023-11-30 10:35:46 25 4
gpt4 key购买 nike

我目前正在为学校开发一个动态 Web 项目,我遇到了一个奇怪的问题......我正在尝试从 .jsp 文件运行一个 servlet。我做了很多研究,显然(如果我错了请纠正我!)如果你想在 .jsp 文件中使用它们,你需要将编译的 servlet 或 java 类文件放入 WEB-INF/classes 目录。

在将构建路径设置为此目录甚至创建目录之前,我能够运行我的网络应用程序。我第二次更改构建路径时,我的服务器拒绝启动,我现在收到此错误:

    SEVERE: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/PullUp]]
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:192)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:915)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:871)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1407)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1397)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/PullUp]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)
... 6 more
Caused by: java.lang.IllegalArgumentException: The servlets named [ListingServlet] and [com.pullup.ListingServlet] are both mapped to the url-pattern [/ListingServlet] which is not permitted
at org.apache.tomcat.util.descriptor.web.WebXml.addServletMappingDecoded(WebXml.java:316)
at org.apache.tomcat.util.descriptor.web.WebXml.addServletMapping(WebXml.java:309)
at org.apache.catalina.startup.ContextConfig.processAnnotationWebServlet(ContextConfig.java:2384)
at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2066)
at org.apache.catalina.startup.ContextConfig.processAnnotationsWebResource(ContextConfig.java:1951)
at org.apache.catalina.startup.ContextConfig.processAnnotationsWebResource(ContextConfig.java:1945)
at org.apache.catalina.startup.ContextConfig.processAnnotationsWebResource(ContextConfig.java:1945)
at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1156)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:783)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:307)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:95)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5213)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
... 6 more

有人知道如何解决这个问题吗?任何帮助将不胜感激!

最佳答案

您正在都映射到 url-pattern 异常,因为当 Tomcat 尝试加载 servlet 类时,它为同一个 servlet 找到了 2 个映射,即一个来自 web.xml 的映射。 xml 和另一个来自 @webservlet.

@webservlet 是定义 servlet url 映射(内联到 servlet 源代码)的另一种方式(在 JavaEE6 容器中)。因此,您不应将这些 servlet 和映射添加到 web.xml 中(即,只需从 WEB-INF 文件夹中删除 web.xml)。

关于java - 如果 WEB-INF/classes 目录存在,Tomcat 服务器将不会启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40946720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com