Bonjour tout le monde,
Je me casse la tête ces derniers jours pour faire marcher les fault exceptions sous Axis/Java.
Mon problème est le suivant:
Dans une methode proposée par un web service, j'ai fait un throw sur une exception personnalisée. Voici un extrait de code utilisé:
public void testMethod() throws java.rmi.RemoteException, MyException, {
throw new MyException("message",1);
}
L'exeption MyException est un JavaBean défini dans le WSDL du web service en question.
Côté client, quand j'essaie d'appeler le web service pour consomer la methode testMethod, j'obtiens un jolie message d'erreur qui est:
HTTP/1.1 500 Erreur Interne de Servlet
Content-Type: text/html;charset=utf-8
Content-Length: 3169
Date: Wed, 31 Jan 2007 15:55:45 GMT
Server: Apache-Coyote/1.1
Connection: close
<html><head><title>Apache Tomcat/5.0.30 - Rapport d'erreur</title><style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}--></style> </head><body><h1>Etat HTTP 500 - </h1><HR size="1" noshade="noshade"><p><b>type</b> Rapport d'exception</p><p><b>message</b> <u></u></p><p><b>description</b> <u>Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête.</u></p><p><b>exception</b> <pre>javax.servlet.ServletException
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:290)
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:161)
</pre></p><p><b>cause mère</b> <pre>java.lang.IncompatibleClassChangeError
MyException.writeDetails(MyException.java:129)
org.apache.axis.message.SOAPFault.outputImpl(SOAPFault.java:165)
org.apache.axis.message.MessageElement.output(MessageElement.java:1207)
org.apache.axis.message.SOAPBody.outputImpl(SOAPBody.java:141)
org.apache.axis.message.SOAPEnvelope.outputImpl(SOAPEnvelope.java:485)
org.apache.axis.message.MessageElement.output(MessageElement.java:1207)
org.apache.axis.AxisFault.output(AxisFault.java:755)
org.apache.axis.SOAPPart.writeTo(SOAPPart.java:280)
org.apache.axis.SOAPPart.writeTo(SOAPPart.java:266)
org.apache.axis.SOAPPart.saveChanges(SOAPPart.java:484)
org.apache.axis.attachments.AttachmentsImpl.getAttachmentCount(AttachmentsImpl.java:519)
org.apache.axis.Message.getContentType(Message.java:475)
org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:765)
javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:324)
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:243)
java.security.AccessController.doPrivileged(Native Method)
javax.security.auth.Subject.doAsPrivileged(Subject.java:500)
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:272)
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:161)
Quelqu'un aurait une idée sur la source de ce problème? Quelqu'un aurait déjà utilisé les fault exception sous axis?
Merci pour votre retour.