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

Services Web Java Discussion :

Erreur "SoapConnectionFactory not found"


Sujet :

Services Web Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 153
    Points : 50
    Points
    50
    Par défaut Erreur "SoapConnectionFactory not found"
    Bonjour à tous,

    Je suis en train de créer un moteur qui s'occupe d'envoyer des requêtes Soap. Pour faire ça, j'ai un moteur qui a une visibilité sur un objet SoapClient que j'ai créé qui va se charger d'envoyer les requêtes.

    Voici le code de SoapClient :

    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
    public class SoapClient implements ISoapClient {
    	private SOAPMessage  message;
    	private SOAPConnection myCon;
     
    	public SoapClient(){
    		SOAPConnectionFactory myFct;
     
    			try {
    				myFct = SOAPConnectionFactory.newInstance();
    				myCon = myFct.createConnection();
    			} catch (UnsupportedOperationException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			} catch (SOAPException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    	}
     
    	public void createRequest(List<String> params){
    		SOAPPart mySPart = message.getSOAPPart();
    		SOAPEnvelope myEnvp;
    		try {
    			myEnvp = mySPart.getEnvelope();
    			SOAPBody body = myEnvp.getBody();
    			Name bodyName = myEnvp.createName("requestSafir");
    			SOAPBodyElement gltp = body.addBodyElement(bodyName);
    		} catch (SOAPException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}
     
    	@Override
    	public SOAPMessage sendRequest(String endpoint) {
    		SOAPMessage reply=null;
    		try {
    			message.saveChanges();
    			URLEndpoint endPt = new URLEndpoint("http://localhost:8080/Venus/services/ScannerSOAP?wsdl");
    			reply = myCon.call(message, endPt);
    		} catch (SOAPException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
     
    		return reply;
    	}
     
    	@Override
    	public void setRequest(SOAPMessage s) {
    		System.out.println("met le message");
    		this.message=s;
    	}
     
    }
    Et voici comment il est appelé :

    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
    public class SupervisorSoap implements ISupervisorSoap {
    	private SOAPMessage message;
    	private ISoapClient client;
     
    	public SupervisorSoap (SOAPMessage messageDeBase){
    		message=messageDeBase;
    		client=new SoapClient();
    		request();
    		SOAPMessage reply=client.sendRequest("http://xxxxxx");
    		traiterReponse(reply);
    	}
     
    	@Override
    	public void request() {
    		client.setRequest(message);
    	}
     
    	@Override
    	public void sentReponse() {
    		// TODO Auto-generated method stub
     
    	}
     
    	@Override
    	public void traiterReponse(SOAPMessage s) {
    		OutputStream out = new ByteArrayOutputStream();
    		try {
    			s.writeTo(out);
    		} catch (SOAPException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
     
    	}
     
     
     
    }
    Et lorsque j'instancie mon superviseur Soap qui lui même est un objet d'une classe qui tourne dans un thread, j'ai cette erreur là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    javax.xml.soap.SOAPException: Unable to create SOAP connection factory: Provider com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnectionFactory not found
    	at javax.xml.soap.SOAPConnectionFactory.newInstance(SOAPConnectionFactory.java:86)
    	at fr.venus.impl.SoapClient.<init>(SoapClient.java:28)
    	at fr.venus.impl.SupervisorSoap.<init>(SupervisorSoap.java:19)
    	at fr.venus.resources.Engine.run(Engine.java:34)
    	at java.lang.Thread.run(Unknown Source)
    Exception in thread "Thread-2" java.lang.NullPointerException
    	at fr.venus.impl.SoapClient.sendRequest(SoapClient.java:59)
    	at fr.venus.impl.SupervisorSoap.<init>(SupervisorSoap.java:21)
    	at fr.venus.resources.Engine.run(Engine.java:34)
    	at java.lang.Thread.run(Unknown Source)
    Et pourtant, j'ai créé un petit main qui s'occupe d'envoyer une requête et qui utilise SoapConnectionFactory et tout fonctionne bien, donc il a bien chargé le jar qu'il faut, du coup je vois pas trop d'où vient le problème.

    Merci

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 153
    Points : 50
    Points
    50
    Par défaut
    Au final faut juste rajouter le jar saaj-impl dans le répertoire jre/lib/ext

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

Discussions similaires

  1. Message d'erreur "Class 'DB' not found"
    Par reman dans le forum Langage
    Réponses: 8
    Dernier message: 26/11/2008, 16h49
  2. Erreur : "msvcr70.dll not found"
    Par MoDer dans le forum Dev-C++
    Réponses: 1
    Dernier message: 26/08/2008, 10h31
  3. message d'erreur:insmod:command not found
    Par info_plus dans le forum RedHat / CentOS / Fedora
    Réponses: 1
    Dernier message: 11/12/2007, 18h19
  4. [MySQL] erreur HTTP : method not found ..
    Par midiweb dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 24/05/2007, 16h25

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