9

I was able to make my app works again, following the advices of user2821894, but after trying to call a servlet tomcat 7 stopped working again!! If i try to delete the code where i call my servlet my web app doesent' work!! Once i have a problem with a servlet tomcat stops working.

I had problem launching my web project on eclipse. I had problem with Tomcat 7. So i 'delete' tomcat 7 from eclipse and then i added it again (again tomcat 7).

now i have no problem launching my web project, but i have problem on my servlet. For example i get error like

 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 of 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>
MDP
  • 4,177
  • 21
  • 63
  • 119
  • plz post some code , mention the line if you know which is causing error , and also post errors – Hussain Akhtar Wahid 'Ghouri' Oct 18 '13 at 11:22
  • I added my servlet code. Anyway,I got those errors after tomcat started giving me problems. I 'deleted' it from eclipse and then i added it again. Before it, my web application worked perfectly. – MDP Oct 18 '13 at 11:45

3 Answers3

9

Try adding servlet-api.jar instead of servelt-api-3.0 jar.Stop the server. Refresh the project and then start the server and see. I think it should work. Make sure you are adding the servlet-api.jar from tomcat lib folder. Suppose your tomcat is in C:\Tomcat\lib. In eclipse right click your project-properties-javabuildpath-add external jars and then select the servlet-api.jar from your tomcat folder

user2821894
  • 988
  • 2
  • 11
  • 20
9

Right click on project ---> Properties ---> Java Build Path ---> Add Library... ---> Server Runtime ---> Apache Tomcat ----> Finish.

Unheilig
  • 16,196
  • 193
  • 68
  • 98
tarun kumar143
  • 391
  • 4
  • 7
2

A possible reason for this error is using a wrong version of Servlet API. @WebServlet annotation is supported by Servlet 3.0. You must change the version from possibly 2.5 to 3.0. To do this in eclipse, right click your project and open Properties. Select Project Facets from the left menu of the page shown. Then change the version of Dynamic Web Module facet to 3.0.

Another possible reason can be related to your Tomcat version. Tomcat is supporting Servlet 3.0 beggining from version 7.0.

ovunccetin
  • 8,443
  • 5
  • 42
  • 53
  • I already have set Dynamic Web Module to 3.0. I got those errors after tomcat started giving me problems. Before it, my web application worked perfectly – MDP Oct 18 '13 at 11:43
  • 1
    It can be related to your tomcat version. Tomcat 7 provides servlet api 3.0, but tomcat 6. Note that I updated my answer. – ovunccetin Oct 18 '13 at 11:48
  • I recommend you to create the project from scratch :) – ovunccetin Oct 18 '13 at 11:57