[Servlet] [Tomcat] Erreur non identifiée (help me please)

Erreur non identifiée (help me please) [Servlet] [Tomcat] - Java - Programmation

Marsh Posté le 21-07-2004 à 14:41:09    

Bonjour,
 
Contexte
 
Je travaille sur un module de paiement bancaire en Java pour OSCommerce (boutique en ligne en php Open source). Voici mes posts sur le meme sujet dans l'ordre chronologique :
1) [Résolu] [Ecommerce] [Tomcat - config] [Libriaries jar] Servlet Atos
2) [Servlet Java] [Php] [Socket] Circulation des données Java <-> Php
3) Celui ci :)
 
Problème
 
Voila j'ai une servlet (bien compilée sans erreurs) qui me donne une erreur a l'éxecution dans tomcat. Je ne suis pas trop habitué a lire ce type de rapport (ci dessous) donc est ce que vous pourriez m'indiquer ce qui pourrait etre la source de l'erreur. Merci !
 
Le rapport :
 

Citation :

Etat HTTP 500 -
 
type Rapport d''exception
 
message
 
description Le serveur a recontrer une erreur interne () qui l'a empèché de satisfaire la requête.
 
exception
 
javax.servlet.ServletException: Erreur d''allocation à une instance de servlet
 at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:672)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
 at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
 at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
 at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
 at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
 at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2417)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
 at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
 at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
 at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
 at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
 at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
 at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
 at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
 at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:193)
 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:781)
 at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:549)
 at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:589)
 at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:666)
 at java.lang.Thread.run(Thread.java:552)
 
cause mère
 
java.lang.NoClassDefFoundError: response/ResponseServlet (wrong name: ResponseServlet)
 at java.lang.ClassLoader.defineClass0(Native Method)
 at java.lang.ClassLoader.defineClass(ClassLoader.java:537)
 at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
 at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1679)
 at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:968)
 at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1409)
 at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1289)
 at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:885)
 at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:668)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
 at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
 at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
 at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
 at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
 at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2417)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
 at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
 at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
 at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
 at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
 at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
 at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
 at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
 at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:193)
 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:781)
 at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:549)
 at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:589)
 at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:666)
 at java.lang.Thread.run(Thread.java:552)


Message édité par wouf le 22-07-2004 à 11:16:33
Reply

Marsh Posté le 21-07-2004 à 14:41:09   

Reply

Marsh Posté le 22-07-2004 à 09:53:35    

:hello: Up déguisé  ;)
 
 Je rappelle que la servlet se compile bien. Je vais tout de même vous fournir la source, ca peut aider  ;) . Ce n'est pas moi qui l'ai écrite je l'ai juste un peu modifiée.
 
Role de la servlet
 
Récupère des données cryptée, fait appel a une api (apipayment.jar) afin de decrypter ces données et fait un affichage de ces données.
 
Sources de la servlet
 
ResponseServlet.java
 

Code :
  1. /*----------------------------------------------------------------------
  2.   Topic  : Exemple SERVLET de traitement de la rÈponse
  3.   Version  : 500
  4. *---------------------------------------------------------------------*/
  5. import java.io.*;
  6. import java.util.*;
  7. import javax.servlet.*;
  8. import javax.servlet.http.*;
  9. import com.atos.sips.payment.*;
  10. import com.atos.sips.common.*;
  11. import com.atos.sips.payment.web.*;
  12. /*
  13. |======================================================================
  14. |
  15. |    main programm  : traitement de la rÈponse manuelle
  16. |     Dans cet exemple, les donnÈes de la transaction
  17. |     sont dÈcryptÈes et affichÈes sur le navigateur
  18. |     de l'internaute.
  19. |
  20. |======================================================================
  21. */
  22. public class ResponseServlet extends HttpServlet {
  23. public void service (HttpServletRequest request,
  24.     HttpServletResponse response) throws ServletException, IOException{
  25.     try{
  26.   PrintWriter out;
  27.   response.setContentType("text/html" );
  28.   out = response.getWriter();
  29.   out.println ("<HTML><HEAD><TITLE>MERCANET - Paiement Securise sur Internet</TITLE></HEAD>" );
  30.   out.println ("<BODY bgcolor=#ffffff>" );
  31.   out.println ("<Font color=#000000>" );
  32.   out.println ("<center><H1>Test de l'API JAVA MERCANET</H1></center><br><br>" );
  33.        /* Initialisation du chemin du fichier pathfile (‡ modifier)
  34.            ex :
  35.             -> Windows : SIPSApiWeb api = new SIPSApiWeb("c:\\repertoire\\pathfile" );
  36.             -> Unix    : SIPSApiWeb api = new SIPSApiWeb("/home/repertoire/pathfile" );
  37.         */
  38.       SIPSApiWeb api = new SIPSApiWeb("chemin complet du pathfile" );
  39.       // Initialisation de l'objet rÈponse
  40.       SIPSDataObject resp = (SIPSDataObject) new SIPSResponseParm();
  41.       // RÈcupÈration de la variable cryptÈe postÈe
  42.       String cypheredtxt = request.getParameter("DATA" );
  43.       // DÈcryptage de la rÈponse
  44.       resp = api.sipsPaymentResponseFunc(cypheredtxt);
  45.       // Affichage des donnÈes de la rÈponse du serveur
  46.   out.println("<center>\n" );
  47.   out.println("<H3>R&eacute;ponse manuelle du serveur MERCANET</H3>\n" );
  48.   out.println("</center>\n" );
  49.   out.println("<b><h4>\n" );
  50.   out.println("<br><hr>\n" );
  51.   out.println("[string]" );
  52.       out.println("merchant_id="     + resp.getValue("merchant_id" )   +"!" );
  53.       out.println("amount="       + resp.getValue("amount" )    +"!" );
  54.       out.println("transaction_id="        + resp.getValue("transaction_id" )        + "!" );
  55.       out.println("payment_means="         + resp.getValue("payment_means" )         + "!" );
  56.       out.println("transmission_date="     + resp.getValue("transmission_date" )     + "!" );
  57.       out.println("payment_time="          + resp.getValue("payment_time" )          + "!" );
  58.       out.println("payment_date="          + resp.getValue("payment_date" )          + "!" );
  59.       out.println("response_code="         + resp.getValue("response_code" )         + "!" );
  60.       out.println("payment_certificate="   + resp.getValue("payment_certificate" )   + "!" );
  61.       out.println("authorisation_id="      + resp.getValue("authorisation_id" )      + "!" );
  62.       out.println("merchant_country="      + resp.getValue("merchant_country" )      + "!" );
  63.       out.println("currency_code="         + resp.getValue("currency_code" )         + "!" );
  64.       out.println("card_number="           + resp.getValue("card_number" )           + "!" );
  65.       out.println("receipt_complement="    + resp.getValue("receipt_complement" )    + "!" );
  66.       out.println("caddie="                + resp.getValue("caddie" )                + "!" );
  67.       out.println("customer_id="           + resp.getValue("customer_id" )           + "!" );
  68.       out.println("customer_email="        + resp.getValue("customer_email" )        + "!" );
  69.       out.println("data="                  + resp.getValue("data" )                  + "!" );
  70.       out.println("return_context="        + resp.getValue("return_context" )        + "!" );
  71.       out.println("order_id="              + resp.getValue("order_id" )              + "!" );
  72.       out.println("customer_ip_address="   + resp.getValue("customer_ip_address" )   + "!" );
  73.       out.println("capture_mode="          + resp.getValue("capture_mode" )          + "!" );
  74.       out.println("capture_day="           + resp.getValue("capture_day" )           + "!" );
  75.       out.println("cvv_response_code="     + resp.getValue("cvv_response_code" )     + "!" );
  76.       out.println("cvv_flag="             + resp.getValue("cvv_flag" )         + "!" );
  77.       out.println("bank_response_code="    + resp.getValue("bank_response_code" )    + "!" );
  78.       out.println("complementary_code="    + resp.getValue("complementary_code" )    + "!" );
  79.   out.println("[/string]" );
  80.   out.println("<br><br><hr></b></h4>" );
  81.   out.println ("</BODY>" );
  82.   out.println ("</HTML>" );
  83.   out.close();
  84.     }
  85.     catch(Exception e){
  86.   PrintWriter out;
  87.   response.setContentType("text/html" );
  88.   out = response.getWriter();
  89.   out.println ("<CENTER>" );
  90.   out.println ("<br>" );
  91.         out.println("Error = "+e);
  92.   out.println ("</CENTER>" );
  93.   out.println ("</BODY>" );
  94.   out.println ("</HTML>" );
  95.   out.close();
  96.     }
  97.   }
  98. }


 
... je rappelle que ca compile bien donc a mon avis l'erreur ne vient pas de la source...


Message édité par wouf le 22-07-2004 à 10:24:25
Reply

Marsh Posté le 22-07-2004 à 14:34:12    

Code :
  1. java.lang.NoClassDefFoundError: response/ResponseServlet (wrong name: ResponseServlet)


 
Euh, ca serait pas un probleme de package (tu ne l'as pas mentionné dans ta classe) par hasard ? ...
 

Citation :


... je rappelle que ca compile bien donc a mon avis l'erreur ne vient pas de la source...


 
Euh...  :heink:


Message édité par senternal le 22-07-2004 à 14:38:09
Reply

Marsh Posté le 22-07-2004 à 14:58:40    

Et oui ça m'a étonné aussi et j'y ai pensé a l'instant, je viens de le corriger et ca venait effectivement de la ... Merci quand même de ta réponse (je commencai a me sentir seul sur mon topic !)
 
la solution :
ajouter ceci dans la source avant les imports

Code :
  1. package response;

Reply

Marsh Posté le 22-07-2004 à 22:13:11    

tu bosses chez atos?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 22-07-2004 à 23:20:26    

wouf a écrit :


Code :
  1. out.println("merchant_id="     + resp.getValue("merchant_id" )   +"!" );
  2.       out.println("amount="       + resp.getValue("amount" )    +"!" );
  3.       out.println("transaction_id="        + resp.getValue("transaction_id" )        + "!" );
  4.       out.println("payment_means="         + resp.getValue("payment_means" )         + "!" );
  5.       out.println("transmission_date="     + resp.getValue("transmission_date" )     + "!" );
  6.       out.println("payment_time="          + resp.getValue("payment_time" )          + "!" );
  7.       out.println("payment_date="          + resp.getValue("payment_date" )          + "!" );
  8.       out.println("response_code="         + resp.getValue("response_code" )         + "!" );
  9.       out.println("payment_certificate="   + resp.getValue("payment_certificate" )   + "!" );
  10.       out.println("authorisation_id="      + resp.getValue("authorisation_id" )      + "!" );
  11.       out.println("merchant_country="      + resp.getValue("merchant_country" )      + "!" );
  12.       out.println("currency_code="         + resp.getValue("currency_code" )         + "!" );
  13.       out.println("card_number="           + resp.getValue("card_number" )           + "!" );
  14.       out.println("receipt_complement="    + resp.getValue("receipt_complement" )    + "!" );
  15.       out.println("caddie="                + resp.getValue("caddie" )                + "!" );
  16.       out.println("customer_id="           + resp.getValue("customer_id" )           + "!" );
  17.       out.println("customer_email="        + resp.getValue("customer_email" )        + "!" );
  18.       out.println("data="                  + resp.getValue("data" )                  + "!" );
  19.       out.println("return_context="        + resp.getValue("return_context" )        + "!" );
  20.       out.println("order_id="              + resp.getValue("order_id" )              + "!" );
  21.       out.println("customer_ip_address="   + resp.getValue("customer_ip_address" )   + "!" );
  22.       out.println("capture_mode="          + resp.getValue("capture_mode" )          + "!" );
  23.       out.println("capture_day="           + resp.getValue("capture_day" )           + "!" );
  24.       out.println("cvv_response_code="     + resp.getValue("cvv_response_code" )     + "!" );
  25.       out.println("cvv_flag="             + resp.getValue("cvv_flag" )         + "!" );
  26.       out.println("bank_response_code="    + resp.getValue("bank_response_code" )    + "!" );
  27.       out.println("complementary_code="    + resp.getValue("complementary_code" )    + "!" );



oh yeah ! My name is fat boy slim, and when I use memory, you feel it in the whole machine-room.
 
sinon, tu ferais bien de mettre tes entêtes HTML en static puisqu'ils en changent jamais.


Message édité par nraynaud le 22-07-2004 à 23:20:54
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed