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 :
1 2 3 4 5
| @WebService
public interface HelloWorld {
List<Contract> serviceGetListContrat();
List<Person> serviceGetListPerson();
} |
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 :
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.
ServiceReference.contract[] answerService = hw.serviceGetListContrat();
Exception coté Client :
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 :
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
Partager