Bonjour,

J'ai mis en place aujourd'hui un service web sur un serveur java en utilisant CXF. Celui ci marche correctement, ainsi que son client java.

Voici le web service :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
@WebService
public interface HelloWorld {     	
    List<Contract> serviceGetListContrat();
    List<Person> serviceGetListPerson();
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@WebService(endpointInterface = "XXX.WebService.HelloWorld",
            serviceName = "HelloWorld")
public class HelloWorldImpl implements HelloWorld {  
 
	public List<Contract> serviceGetListContrat() {
		ManageList mList = ManageList.getInstance();	
		return mList.getListContratBDD();
	}
 
	public List<Person> serviceGetListPerson() {
		ManageList mList = ManageList.getInstance();	
		return mList.getListPersonBDD();
	}  
}
Du coté C#, je bloque à un certain point :

Pour le moment, j'ai ajouté une référence de service à l'adresse : http://localhost:9000/helloWorld?wsdl et j'appelle mon service de la façon suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 EndpointAddress endpointAdress = new EndpointAddress("http://localhost:9000/helloWorld");
            ServiceReference.HelloWorldClient hw = new ServiceReference.HelloWorldClient(new WSHttpBinding(), endpointAdress);
Je ne suis pas sur de l'utilisation de : WSHttpBinding(), peut être existe il une autre variable pour cela.

et enfin : je souhaite récupérer ma liste de contract mais je souleve une ProtocolException.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
 ServiceReference.contract[] answerService = hw.serviceGetListContrat();
Exception coté Client :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Le type de contenu text/xml; charset=utf-8 du message de réponse ne correspond pas au type de contenu de la liaison (application/soap+xml; charset=utf-8). Si vous utilisez un codeur personnalisé, vérifiez que la méthode IsContentTypeSupported est implémentée correctement. Les premiers 327 octets de la réponse étaient : « <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><soap:Fault><faultcode>soap:Client</faultcode><faultstring>Message part {http://schemas.xmlsoap.org/ws/2005/02/trust}RequestSecurityToken was not recognized.  (Does it exist in service WSDL?)</faultstring></soap:Fault></soap:Body></soap:Envelope> ».
Coté serveur :
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
1 juil. 2009 17:38:18 org.apache.cxf.phase.PhaseInterceptorChain doIntercept
INFO: Interceptor has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Message part {http://schemas.xmlsoap.org/ws/2005/02/trust}RequestSecurityToken was not recognized.  (Does it exist in service WSDL?)
	at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:184)
	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:236)
	at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:89)
	at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.serviceRequest(JettyHTTPDestination.java:302)
	at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:265)
	at org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:70)
	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
	at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
	at org.mortbay.jetty.Server.handle(Server.java:326)
	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534)
	at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:879)
	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747)
	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
	at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)
Si jamais quelqu'un a une idée sur la provenance de ce problème je vous en remercie d'avance

Cordialement
Nicolas