org.apache.catalina.LifecycleException грешка tomcat

Моят дневник на грешки в eclipse

Dec 07, 2013 12:52:11 PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive C:\apache-tomcat-7.0.42\ROOT\QMSa.war
Dec 07, 2013 12:52:19 PM org.apache.catalina.core.ContainerBase addChildInternal
SEVERE: ContainerBase.addChild: start: 
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/QMSa]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:976)
    at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1653)
    at java.util.concurrent.Executors$RunnableAdapter.call(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: java.lang.IllegalArgumentException: The servlets named [uploadServlet] and [FileUploadDBServlet.FileUploadDBServlet] are both mapped to the url-pattern [/uploadServlet] 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)
    ... 10 more

Dec 07, 2013 12:52:19 PM org.apache.catalina.startup.HostConfig deployWAR
SEVERE: Error deploying web application archive C:\apache-tomcat-7.0.42\ROOT\QMSa.war
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/QMSa]]
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:904)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:976)
    at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1653)
    at java.util.concurrent.Executors$RunnableAdapter.call(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)

Разположих своя WAR файл в папката webapps. И на eclipse получих тази грешка.

Използвам същата версия на JRE за tomcat и eclipse. Също така това е моят web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->

<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
  version="2.5">

  <display-name>Welcome to Tomcat</display-name>
  <description>
hello
  </description>
 <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>

 <servlet>
   <servlet-name>uploadServlet</servlet-name>
   <servlet-class>FileUploadDBServlet.FileUploadDBServlet</servlet-class>
 </servlet>

 <servlet-mapping>
   <servlet-name>uploadServlet</servlet-name>
   <url-pattern>/uploadServlet</url-pattern>
 </servlet-mapping>
</web-app>

от страницата index.html изпращам формуляр. Действието за формуляра се дава от

<form method="post" name="myForm" id="question_form" action="uploadServlet" enctype="multipart/form-data" onsubmit="return validateForm()" >

моля, предоставете помощ

АКТУАЛИЗАЦИЯ

@WebServlet("/uploadServlet")
@MultipartConfig(maxFileSize = 16177215)    // upload file's size up to 16MB
public class FileUploadDBServlet extends HttpServlet {

    // database connection settings
    private String dbURL = "jdbc:mysql://localhost:3306/elect";
    private String dbUser = "root";
    private String dbPass = "root";

    protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        // gets values of text fields

person Santino 'Sonny' Corleone    schedule 07.12.2013    source източник
comment
Изглежда, че също използвате анотация за вашия сервлет клас. Можете ли да споделите кода на вашия сървлет?   -  person Juned Ahsan    schedule 07.12.2013
comment
просто публикуване на част от кода.   -  person Santino 'Sonny' Corleone    schedule 07.12.2013
comment
@frostjogla пакетът и .java файлът са едни и същи   -  person Santino 'Sonny' Corleone    schedule 07.12.2013
comment
@JunedAhsan започна да работи веднага след като премахнах анотациите   -  person Santino 'Sonny' Corleone    schedule 07.12.2013
comment
Преместване на коментара в секциите с отговори, тъй като това беше истинският проблем.   -  person Juned Ahsan    schedule 07.12.2013


Отговори (1)


Изглежда, че използвате и анотация за вашия сервлет клас, което причинява конфликт/объркване за уеб контейнера.

person Juned Ahsan    schedule 07.12.2013