Partage
  • Partager sur Facebook
  • Partager sur Twitter

Java Erreur

java.lang.NullPointerException

    12 juillet 2019 à 19:01:50

    Bonjour ,

    S'il vous plait j'ai une exception qui se lève au niveau de mon code ci-dessous , et je ne sais pas d'ou ca peut venir , tout en sachant que mes objets sont initialisés dans le constructeur

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    				
    		HttpSession session = request.getSession(true);
    		
    
    		Article article = (Article) session.getAttribute( "currentArticle" );
    		
    		
    			article.setDescription( request.getParameter( "description" ) );
    		
    	
    			
    			article.setBrand( request.getParameter( "brand" ) );
    			article.setUnitaryPrice( Double.parseDouble( request.getParameter( "unitaryPrice" ) ) );
    			ArticleDAO.updateArticle( article );
    		
    	
    
    		
    		request.getRequestDispatcher( "/admin/editArticle.jsp" ).forward( request, response );
    		
    	}
    
    
    

    GRAVE: "Servlet.service()" pour la servlet [com.webstore.ihm.EditArticle] a généré une exception

    java.lang.NullPointerException

    at com.webstore.ihm.EditArticle.doPost(EditArticle.java:43)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)

    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)

    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)

    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)

    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)

    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)

    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)

    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)

    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)

    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)

    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:853)

    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1587)

    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)

    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)

    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

    at java.base/java.lang.Thread.run(Thread.java:844)

    Voici la methode updateArticle du DAO :

    public static void updateArticle( Article article ) {
    		try ( Connection connection = DriverManager.getConnection( dbURL, dbUser, dbPassword ) ){
    
    			String strSql = "UPDATE T_Articles SET description=?, brand=?, unitaryPrice=? WHERE idArticle=?";
    			try ( PreparedStatement statement  = connection.prepareStatement( strSql ) ) {
    				statement.setString( 1, article.getDescription() );
    				statement.setString( 2, article.getBrand() );
    				statement.setDouble( 3, article.getUnitaryPrice() );
    				statement.setInt( 4, article.getIdArticle() );
    				statement.executeUpdate();
    			}
    			
    		} catch ( Exception exception ) {
    			
    			throw new RuntimeException( exception );
    			
    		}
    	}

    et la classe Article 

    public class Article {
    
    	private int idArticle;
    	private String description;
    	private String brand;
    	private double unitaryPrice;
    	
    	
    	public Article() {
    		this( 0, "unknown", "unknown", 0 );
    	}
    	
    	
    	public Article( int idArticle, String description, String brand, double unitaryPrice ) {
    		this.setIdArticle( idArticle );
    		this.setDescription( description );
    		this.setBrand( brand );
    		this.setUnitaryPrice( unitaryPrice );
    	}
    
    
    	public int getIdArticle() {
    		return idArticle;
    	}
    	
    	public void setIdArticle(int idArticle) {
    		this.idArticle = idArticle;
    	}
    	
    	public String getDescription() {
    		return description;
    	}
    	
    	public void setDescription(String description) {
    		
    		if(description == null) throw new NullPointerException();
    		this.description = description;
    	}
    	
    	public String getBrand() {
    		return brand;
    	}
    	
    	public void setBrand(String brand) {
    		if(brand == null) throw new NullPointerException();
    		this.brand = brand;
    	}
    	
    	public double getUnitaryPrice() {
    		return unitaryPrice;
    	}
    	
    	public void setUnitaryPrice(double unitaryPrice) {
    		if(unitaryPrice == 0.0) throw new NullPointerException();
    		this.unitaryPrice = unitaryPrice;
    	}
    	
    	
    	
    }
    

    Merci beaucoup pour de l'aide .


    • Partager sur Facebook
    • Partager sur Twitter
      12 juillet 2019 à 19:32:18

      Bonjour,

      Mauvais titre

      Le titre est un élément important qui ne doit pas être négligé. N'oubliez pas cette règle simple : le titre idéal résume la question que vous allez poser en une petite phrase. Il doit permettre aux visiteurs de se repérer facilement dans le forum visité et d'identifier le sujet à sa seule lecture.

      Vous pouvez utiliser divers préfixes comme [Erreur], [MySQL], [Compatibilité], etc... Aussi, pensez à consulter les règles propres à chaque forum (visibles dans les topics épinglés en haut des sections).

      De plus, choisir un bon titre permet de rendre plus faciles les recherches des autres membres.

      Les titres de type "besoin d'aide" ou "problème" ne sont pas tolérés.

      Pour modifier votre titre, éditez le premier message de votre sujet.

      (titre originel : Java Erreur)

      Liens conseillés

      • Partager sur Facebook
      • Partager sur Twitter
        13 juillet 2019 à 8:49:43

        hamza.elm7 a écrit:

        java.lang.NullPointerException

        at com.webstore.ihm.EditArticle.doPost(EditArticle.java:43)

        Il te dit que tu as un objet null à la ligne 43 du fichier qui contient la classe EditArticle.

        C'est probablement le code que tu as posté en premier, mais il faudrait que tu nous précises quelle est la ligne 43 dans la numérotation de ton fichier.



        • Partager sur Facebook
        • Partager sur Twitter

        Java Erreur

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown