Java 发动雄猫战争

Java 发动雄猫战争,java,tomcat,servlets,Java,Tomcat,Servlets,我已经在我的电脑上安装了Tomcat服务器 我在Eclipse中创建了一组servlet,并以WAR格式导出 当我部署到服务器并将其引导时,会出现以下错误: FALLO - No se pudo arrancar la aplicación en trayectoria de contexto /Middleware FALLO - Encontrada excepción org.apache.catalina.LifecycleException: Failed to start compo

我已经在我的电脑上安装了Tomcat服务器

我在Eclipse中创建了一组servlet,并以WAR格式导出

当我部署到服务器并将其引导时,会出现以下错误:

FALLO - No se pudo arrancar la aplicación en trayectoria de contexto /Middleware
FALLO - Encontrada excepción org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/Middleware]]
如果我转到Tomcat日志文件了解更多详细信息,请参阅以下内容:

Caused by: java.lang.IllegalArgumentException: The servlets named [reunionServlet] and [servlet.ReunionServlet] are both mapped to the url-pattern [/ReunionServlet] which is not permitted
at org.apache.catalina.deploy.WebXml.addServletMapping(WebXml.java:335)
at org.apache.catalina.startup.ContextConfig.processAnnotationWebServlet(ContextConfig.java:2457)
at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2139)
at org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2100)
at org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2093)
at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1300)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:878)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:369)
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:5269)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
有什么问题

不知道问题是否出在web.xml文件上。其内容如下


reunionServlet和servlet.reunionServlet都映射到相同的URL-PATTERN/reunionServlet,这在servlet容器中是禁止的。
删除其中一个声明。

阅读stacktrace的前三行,它们很好地告诉您发生了什么:正如javadev正确回答的那样,您正在将两个servlet映射到同一URL模式。其中一个显然在web.xml中,另一个很可能在某个注释中(如stacktrace的第三行所示)

找到有问题的servlet并更改注释或web.xml声明,就可以了


有趣的是:在这两种情况下,有问题的servlet似乎是相同的-例如,您在web.xml和带注释的servlet.ReunionServlet中声明了ReunionServlet的映射(您的包名似乎是“servlet”-非常通用)。因此,您基本上只需要删除这两个声明中的一个,所有内容都应按预期工作。

如果您使用JavaEEAPI库,则可能存在问题。 尝试从项目中删除JavaEE6API库并重新构建


它对我有用

您是否使用Tomcat 7和Servlet 3.0功能,例如使用
@WebServlet(“someUrl”)
在Servlet定义中添加URL映射?要启动Tomcat战争,只需提到JBoss或WebSphere;-)向我们展示servlet.ReunionServlet类的一些代码。