IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

Classe ok dans une methode main, ko dans la servlet


Sujet :

Servlets/JSP Java

  1. #1
    Membre habitué
    Inscrit en
    Mars 2005
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 237
    Points : 181
    Points
    181
    Par défaut Classe ok dans une methode main, ko dans la servlet
    Bonjour,

    Voilà, dans un application, j'ai une classe que j'ai crée qui envoie des mail.
    Cette classe se trouve dans un jar que j'ai ajouté à un projet web.

    Quand j'appelle cette classe dans un classe avec une méthode main, ça envoie le mail alors que dans une servlet il me lance une ClassNotFoundException

    code méthode main :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    package fr.xxx.web.app.xxx.test;
     
    import fr.xxx.utility.mail.Mail;
     
    public class TestMail {
     
     
    	public static void main(String[] args) {
     
    		String smtpHost_ = "srv.xxx.fr";
    		String smtpFrom_ = "nn.nn@xxx.fr";
    		String from_ = "nn.nn@xxx.fr";
    		String to_ = "nn.nn@xxx.fr";
    		String cc_ = null;
    		String bcc_ = null;
    		String subject_ = "Test mail subject";
    		String content_ = "<font color='blue'>Test mail body</font>";
    		String embedded_ = null;
    		String attach_ = null;
    		String bodyTypeMime_ = "text/html";
    		String fichierTrace_ = null;
     
    		Mail mail = new Mail();
    		mail.send(smtpHost_, smtpFrom_, from_, to_, cc_, bcc_, subject_, content_, embedded_, attach_, bodyTypeMime_, fichierTrace_);
    	}
     
    }

    code servlet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
     
    package fr.xxx.web.app.xxx.mail;
     
    import java.io.IOException;
    import javax.servlet.ServletConfig;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    import fr.xxx.utility.mail.Mail;
     
    /**
     * Servlet implementation class SendMail
     */
    public class SendMail extends HttpServlet {
    	private static final long serialVersionUID = 1L;
     
        /**
         * @see HttpServlet#HttpServlet()
         */
        public SendMail() {
            super();
            // TODO Auto-generated constructor stub
        }
     
    	/**
    	 * @see Servlet#init(ServletConfig)
    	 */
    	public void init(ServletConfig config) throws ServletException {
    		// TODO Auto-generated method stub
    	}
     
    	/**
    	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		String smtpHost_ = "srv.xxx.fr";
    		String smtpFrom_ = "nn.nn@xxx.fr";
    		String from_ = "nn.nn@xxx.fr";
    		String to_ = "nn.nn@xxx.fr";
    		String cc_ = null;
    		String bcc_ = null;
    		String subject_ = "Test mail subject";
    		String content_ = "<font color='blue'>Test mail body</font>";
    		String embedded_ = null;
    		String attach_ = null;
    		String bodyTypeMime_ = "text/html";
    		String fichierTrace_ = null;
     
    		try {
    			System.out.println("1");
    			Mail mail = new Mail();
    			System.out.println("2");
    			mail.send(smtpHost_, smtpFrom_, from_, to_, cc_, bcc_, subject_,
    					content_, embedded_, attach_, bodyTypeMime_, fichierTrace_);
    			System.out.println("3");
    		} catch (Exception e) {
    			System.out.println("==> "+e);
    		}
     
    	}
     
    	/**
    	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		doGet(request, response);
    	}
     
    }

    web.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
      <servlet>
        <description>Send email servlet</description>
        <display-name>SendMail</display-name>
        <servlet-name>SendMail</servlet-name>
        <servlet-class>fr.altares.web.app.xxx.mail.SendMail</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>SendMail</servlet-name>
        <url-pattern>/SendMail</url-pattern>
      </servlet-mapping>
    </web-app>

    erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    GRAVE: "Servlet.service()" pour la servlet SendMail a g�n�r� une exception
    java.lang.ClassNotFoundException: fr.xxx.utility.mail.Mail
    	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
    	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
    	at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    	at fr.altares.web.app.apprisk.mail.SendMail.doGet(SendMail.java:53)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
    	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    	at java.lang.Thread.run(Unknown Source)


    Merci

  2. #2
    Membre éclairé Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Points : 672
    Points
    672
    Par défaut
    Bonjour,

    il semble que ta classe ne sois pas retrouvée. Où as tu mis le jar dans ton serveur?
    Vérifies qu'il est soit dans ta webapp au niveau du WEB-INF/lib ou d'une façon plus globale dans le repertoire des lib du serveur

  3. #3
    Membre habitué
    Inscrit en
    Mars 2005
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 237
    Points : 181
    Points
    181
    Par défaut
    merci !!!! ça marche.

    juste une question, pourquoi cela fonctionnait avec la classe main ?

  4. #4
    Membre du Club
    Inscrit en
    Juillet 2003
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 46
    Points : 42
    Points
    42
    Par défaut
    simplement parceque tu lançais ton main depuis un IDE (éclipse ou autre) qui lui avait bien le jar de définis dans son classpath

  5. #5
    Membre éclairé Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Points : 672
    Points
    672
    Par défaut
    Tu avais surement bien configuré les librairies dans le build path de ton projet pour qu'il pointe sur ton jar, ce qui fait que ses classes étaient accessibles (par ta classe contenant le main ou d'autres...) au sein du projet.
    Une fois sur un serveur, c'est lui qui prend en charge les librairies externes. C'est pour cette raison qu'il faut les placer aux endroits précis où il saura les retrouver

  6. #6
    Membre habitué
    Inscrit en
    Mars 2005
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 237
    Points : 181
    Points
    181
    Par défaut
    ok, merci pour vos réponses.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 15/01/2010, 15h42
  2. Réponses: 9
    Dernier message: 13/03/2008, 01h34
  3. insertion dans une table puis update dans une autre table
    Par uptoditime dans le forum VBA Access
    Réponses: 5
    Dernier message: 10/10/2007, 18h08
  4. Recherche de valeur dans une feuille et affichage dans une autre
    Par Zebulon777 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 15/05/2007, 09h40
  5. Réponses: 3
    Dernier message: 06/09/2006, 09h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo