Accéder au contenu.
Menu Sympa

fr - Re: [sympa-fr] Problème SOAP avec Java Axis

Objet : Pour les administrateurs de serveurs de listes utilisant le logiciel Sympa

Archives de la liste

Chronologique Discussions  
  • From: Vincent MATHIEU <adresse@cachée>
  • To: Xavier MOGHRABI <adresse@cachée>
  • Cc: adresse@cachée
  • Subject: Re: [sympa-fr] Problème SOAP avec Java Axis
  • Date: Wed, 10 Aug 2005 22:24:10 +0200

A tout hasard :

Est-ce que tes listes n'ont pas dans le sujet des caractères accentués ?
Avec la version 4.x de sympa, ca posait problème car le web service envoyait des accentués en format latin1 (ils étaient saisis comme ca) et le client axis attendait de l'utf8.

J'avais mis 'en dur' dans le sympasoap.pm une transco latin1 -> utf8 : $data->{$k} = latin1($data->{$k})->utf8; (ligne 812, sympa 4.1.2).

Je viens d'installer (hier) la version 5.1.b de sympa, en test. Apparemment, on peut lui faire parler nativement utf8. Je suppose que ca va corriger ce problème.
Je compte tester ... dans qqs jours, congés obligent.

Vincent

Xavier MOGHRABI a écrit :

bonjour

Je suis en train de tester l'interface SOAP de Sympa avec Axis en Java.

J'ai donc générer avec WSDL2Java les classes clientes.

Le problème est lorsque je demande à l'interface les listes pour lesquelles l'utilisateur est inscript, je n'ai pas de réponse. Or mon utilisateur est bien subscriber d'une liste. De la même façon si je demande des informations sur une liste ou de souscrire à une liste, on me dit que celle-ci est inconnue. C'est bizarre car l'authentification marche bien puisque si je change le mot de passe j'obtiens une exception avec le message "Authentification failed".

J'ai fait des tests avec la demo http://demo.sympa.org/sampleClient.php et mon client Java et là ça marche assez bien.

Voici mon code Java et l'exception que j'obtiens :

import fr.inrialpes.baryum.wws.wsdl.*;

public class Connect {
public static void main(String[] args) {
try {
String mail="adresse@cachée",
pass="zzz";
SympaSOAP loc = new SympaSOAPLocator();
((SympaSOAPLocator) loc).setMaintainSession(true);
SympaPort port = loc.getSympaPort();
String _cookie = port.login(mail, pass);
String[] lists = port.authenticateAndRun(mail, _cookie,
"which", null);
for (int i=0; i<lists.length;i++) {
System.out.print(lists[i]+"\n");
}
port.subscribe("foo", mail);
} catch (Exception e) {
e.printStackTrace();
}
}
}

Message de l'Exception :
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server
faultSubcode: faultString: Unknown list
faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace: AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server
faultSubcode: faultString: Unknown list
faultActor: faultNode: faultDetail:
Unknown list
at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:260)
at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:169)
at org.apache.axis.encoding.DeserializationContextImpl.endElement(DeserializationContextImpl.java:1015)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1712)
at org.apache.crimson.parser.Parser2.content(Parser2.java:1963)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1691)
at org.apache.crimson.parser.Parser2.content(Parser2.java:1963)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1691)
at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:667)
at org.apache.crimson.parser.Parser2.parse(Parser2.java:337)
at
org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
at org.apache.axis.encoding.DeserializationContextImpl.parse(DeserializationContextImpl.java:242)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:538)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:376)
at org.apache.axis.client.Call.invokeEngine(Call.java:2583)
at org.apache.axis.client.Call.invoke(Call.java:2553)
at org.apache.axis.client.Call.invoke(Call.java:2248)
at org.apache.axis.client.Call.invoke(Call.java:2171)
at org.apache.axis.client.Call.invoke(Call.java:1691)
at fr.inrialpes.baryum.wws.wsdl.SOAPStub.subscribe(SOAPStub.java:415)
at org.objectweb.services.mailinglist.Connect.main(Connect.java:44)

Toute aide est la bienvenue.



--
Vincent MATHIEU
Université Nancy 2 - CRI
Equipe système et réseaux
tel : 03 83 39 64 06
coordonnées :
http://www.univ-nancy2.fr/ANNUAIRE/PERS/detail_pres.php?uid=vmathieu





Archives gérées par MHonArc 2.6.19+.

Haut de le page