2013-05-06 5 views
2

내 PC에 Tomcat 서버를 설치했습니다.Tomcat WAR 시작

나는 이클립스에서 서블릿의 집합을 생성하고 난 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 패턴/ReunionServlet에 매핑되는

enter image description here

+1

서블릿 정의에서 URL 매핑을'@WebServlet ("someUrl")'과 같이 추가하는 것과 같은 Tomcat 7 및 Servlet 3.0 기능을 사용하고 있습니까? –

+0

Tomcat WAR를 시작하려면 JBoss 또는 WebSphere 만 언급하십시오 .-) – jarmod

+0

servlet.ReunionServlet 클래스에 대한 코드 몇 가지를 보여줍니다. – acdcjunior

답변

3

stacktrace의 처음 세 줄을 읽으면서 javadv가 올바르게 응답 했으므로 두 개의 서블릿을 동일한 URL 패턴에 매핑합니다. 그들 중 하나는 명백히 web.xml에 있으며, 다른 주석은 스택 추적의 세 번째 줄이 떨어져 있기 때문에 가능합니다.

문제가있는 서블릿을 찾아 annotation 또는 web.xml 선언을 변경하면 문제가 없습니다.

충분히 재미 있습니다. 문제가되는 서블릿은 두 경우 모두 같습니다 (예 : web.xml에서 ReunionServlet에 대한 매핑을 선언하고 servlet.ReunionServlet에 주석을 달았습니다 (패키지 이름은 "서블릿"인 것처럼 보입니다 - 매우 일반적입니다). 따라서 기본적으로 두 선언 중 하나만 삭제하면 모든 것이 예상대로 작동합니다.

4

을 다음과 같이 그 내용이다. 선언 중 하나를 제거하십시오.