it-swarm.com.ru

WebServlet не может быть разрешен к типу

Я смог заставить мое приложение работать снова, следуя советам пользователя 2821894, но после попытки вызова сервлета Tomcat 7 перестал работать снова !! Если я пытаюсь удалить код, где я вызываю мой сервлет, мое веб-приложение doesent 'работа !! Как только у меня возникает проблема с сервлетом, Tomcat перестает работать.

У меня были проблемы с запуском моего веб-проекта на Eclipse. У меня была проблема с Tomcat 7 . Поэтому я «удаляю» Tomcat 7 из Eclipse, а затем снова добавляю его (снова Tomcat 7).

теперь у меня нет проблем с запуском моего веб-проекта, но у меня есть проблема с моим сервлетом . Например, я получаю сообщение об ошибке типа 

 WebServlet cannot be resolved to a type
 The attribute value is undefined for the annotation type 

Я добавил servlet-api 3.0.jar в свой проект, но у меня все еще есть эти проблемы.

Это код моего сервлета

 package Jeans;
    import Java.io.IOException;
    import Java.io.InputStream;
    import Java.sql.Connection;
    import Java.sql.PreparedStatement;
    import Java.sql.SQLException;

    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.annotation.WebServlet;

    import com.Sun.Java.swing.plaf.windows.TMSchema.Part;


    import javax.servlet.http.Part;



    @WebServlet("/FileUploadDBServlet ")

  //// i got an error here//////////////////////////// 
    @MultipartConfig(maxFileSize = 16177215)  

    public class FileUploadDBServlet extends HttpServlet {


        private String dbURL = "db";
        private String dbUser = "dbuser";
        private String dbPass = "dbpassword";
        String messageMio = "da contorllare";  
        GestioneDB gestioneDB;
        boolean connessione;       
        Connection conn;

        protected void doPost(HttpServletRequest request,
                HttpServletResponse response) throws ServletException, IOException {




         String giorno= request.getParameter("giorno");
         String mese= request.getParameter("mese");
         String anno= request.getParameter("anno");         
         String dataFormatoItaliano = giorno + "-" + mese + "-" + anno;     

          String titolo = request.getParameter("titolo");
          String titoletto = request.getParameter("titoletto");
          String testoMouse = request.getParameter("testoMouse");
          String link = request.getParameter("link");
          String data = dataFormatoItaliano;
          String testo = request.getParameter("testo");




          //// i got an error here////////////////////////////
          Part filePart = request.getPart("immaginePrincipale");  






 String didascaliaImmaginePrincipale = request.getParameter("didascaliaImmaginePrincipale");       


            InputStream immaginePrincipale = null; 
            if (filePart != null) {             
                // obtains input stream of the upload file
                immaginePrincipale = filePart.getInputStream();
            }





            String message = null;  

            try {

                  gestioneDB = new GestioneDB(); 
                  conn = gestioneDB.cn();  



                  gestioneDB.inserimentoNews(titolo, titoletto, testoMouse, link, testo, data, immaginePrincipale, didascaliaImmaginePrincipale);



                String sql = "INSERT INTO allegati_news (allegato,didascalia,tipo,id_news,immagine) values (?,?,?,?,?)";




                PreparedStatement statement = conn.prepareStatement(sql);
                statement.setString(1, "firstName");
                statement.setString(2, "lastName");
                statement.setInt(3, 1);
                statement.setInt(4,1);            
                if (immaginePrincipale != null) {              
                    statement.setBlob(5, immaginePrincipale);             
                }




                int row = statement.executeUpdate();
                if (row > 0) {
                    message = "File salvato nel db";
                }
            } catch (SQLException ex) {
                message = "ERROR: " + ex.getMessage();
                ex.printStackTrace();
            } finally {
                if (conn != null) {

                    try {
                        conn.close();
                    } catch (SQLException ex) {
                        ex.printStackTrace();
                    }
                }

               request.setAttribute("Message", gestioneDB.getInserimentoNewMessaggio());



               getServletContext().getRequestDispatcher("/Message.jsp").forward(request, response);
            }
        }
    }

Это мой файл web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://Java.Sun.com/xml/ns/javaee" xmlns:web="http://Java.Sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://Java.Sun.com/xml/ns/javaee http://Java.Sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>Jeans2</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <description></description>
    <display-name>prova</display-name>
    <servlet-name>prova</servlet-name>
    <servlet-class>Jeans.prova</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>prova</servlet-name>
    <url-pattern>/prova</url-pattern>
  </servlet-mapping>
  <servlet>

    <description></description>
    <display-name>FileUploadDBServlet</display-name>
    <servlet-name>FileUploadDBServlet</servlet-name>
    <servlet-class>Jeans.FileUploadDBServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>FileUploadDBServlet</servlet-name>
    <url-pattern>/FileUploadDBServlet</url-pattern>
  </servlet-mapping>

   <servlet>
    <description></description>
    <display-name>BlobDisplay</display-name>
    <servlet-name>BlobDisplay</servlet-name>
    <servlet-class>Jeans.BlobDisplay</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>BlobDisplay</servlet-name>
    <url-pattern>/BlobDisplay</url-pattern>
  </servlet-mapping>


</web-app>
7
MDP

Попробуйте добавить servlet-api.jar вместо servelt-api-3.0 jar. Остановите сервер. Обновите проект, а затем запустите сервер и посмотрите. Я думаю, что это должно работать. Убедитесь, что вы добавляете servlet-api.jar из папки Tomcat lib. Предположим, ваш Tomcat находится в C:\Tomcat\lib . В Eclipse правой кнопкой мыши щелкните внешние jar-проект-properties-javabuildpath-add и выберите servlet-api.jar из папки Tomcat.

8
user2821894

Щелкните правой кнопкой мыши по проекту ---> Свойства ---> Путь сборки Java ---> Добавить Библиотека ... ---> Время выполнения сервера ---> Apache Tomcat ----> Готово.

1
tarun kumar143

Возможная причина этой ошибки - использование неверной версии Servlet API. Аннотация @WebServlet поддерживается Servlet 3.0 . Вы должны изменить версию, возможно, с 2.5 на 3.0. Чтобы сделать это в Eclipse, щелкните правой кнопкой мыши свой проект и откройте Properties. Выберите Project Facets в левом меню показанной страницы. Затем измените версию фасета Dynamic Web Module на 3.0.

Другая возможная причина может быть связана с вашей версией Tomcat. Tomcat поддерживает Servlet 3.0, начиная с версии 7.0. 

1
ovunccetin

Скачайте servlet-api.jar, там будет Zip-файл. Не забудьте распаковать его. Потому что я добавлял папку Zip, и она не работала. Остановите сервер и очистите его. опубликуйте его и перезапустите. 

0
Gautami khante