WebServlet cannot be allowed for type

I was able to configure my application again following the advice of user2821894, but after trying to call the servlet tomcat 7 stopped working again !! If I try to remove the code in which I call my servlet, my web application doesent 'work !! As soon as I have a problem with the servlet, tomcat stops working.

I had a problem running my web project in eclipse. I had a problem with Tomcat 7. So I 'delete' tomcat 7 from eclipse and then add it again (again tomcat 7).

now I have no problems running my web project, but I have problems with my servlet. For example, I get an error, for example

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

I added servlet-api 3.0.jar to my project, but I still have these problems.

This is the code for my servlet

  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); } } } 

This is my web.xml file

 <?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> 
+6
source share
3 answers

Try adding servlet-api.jar instead of servelt-api-3.0 jar. Shut down the server. Update the project, and then start the server and see. I think this should work. Make sure you add the servlet-api.jar from the tomcat lib folder. Suppose your tomcat is located in C: \ Tomcat \ lib. In eclipse, right-click your project properties-javabuildpath-add external banks, and then select servlet-api.jar from your tomcat folder

+7
source

A possible cause of this error is using the wrong version of the Servlet API. @WebServlet annotation is supported by Servlet 3.0 . You must change the version from 2.5 to 3.0. To do this in eclipse, right-click your project and open Properties. Select Project Boundaries from the menu to the left of the page shown. Then change the torch version of the dynamic web module to 3.0.

Another possible reason may be related to your version of Tomcat. Tomcat supports Servlet 3.0 starting with version 7.0.

+1
source

Download servlet-api.jar will be a zip file. Do not forget to unzip it. Because I added the zip folder and it did not work. Stop the server and clean it. publish it and restart.

0
source

Source: https://habr.com/ru/post/956229/


All Articles