2010-12-15 4 views
0

J'ai créé un service Web CXF utilisation avec 1.2 reliure de savon.CXF ne fonctionne pas bien avec .Net?

lorsque je tente de créer un client C#, essayer de faire le « Ajouter Web Service de référence »

côté java donner et avertissement ..

donc ... ce que cela signifie l'utilisation en deux parties norme différente ??? pouvons-nous résoudre ce problème? je suis Worring cela va me faire trobule, puisque je dois créer un projet avec ces deux technologies ...

WARNING: Interceptor for {http://demo.mydemo.com/}DartProxyImplService has thrown exception, unwinding now 
org.apache.cxf.binding.soap.SoapFault: MustUnderstand headers: [{http://www.w3.org/2005/08/addressing}Action, {http://www.w3.org/2005/08/addressing}To] are 
not understood. 
     at org.apache.cxf.binding.soap.interceptor.MustUnderstandInterceptor.checkUltimateReceiverHeaders(MustUnderstandInterceptor.java:129) 
     at org.apache.cxf.binding.soap.interceptor.MustUnderstandInterceptor.handleMessage(MustUnderstandInterceptor.java:87) 
     at org.apache.cxf.binding.soap.interceptor.MustUnderstandInterceptor.handleMessage(MustUnderstandInterceptor.java:48) 
     at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255) 
     at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:113) 
     at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:97) 
     at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:461) 
     at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:188) 
     at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:148) 
     at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:179) 
     at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:103) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) 
     at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:159) 
     at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) 
     at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:401) 
     at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 
     at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) 
     at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766) 
     at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450) 
     at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) 
     at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) 
     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:542) 
     at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:945) 
     at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756) 
     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:410) 
     at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) 

après suggestion jdmichal`s mettre

<jaxws:endpoint id="{your.service.namespace}YourPortName"> 
    <jaxws:features> 
    <wsa:addressing xmlns:wsa="http://cxf.apache.org/ws/addressing"/> 
    </jaxws:features> 
</jaxws:endpoint> 

il y a un autre nouvel avertissement .. ..does quelqu'un sait quel est ce problème ??? comment y remédier ???

[INFO] Started Jetty Server 
Dec 16, 2010 10:42:25 AM org.apache.cxf.transport.servlet.ServletController invoke 
WARNING: Can't find the request for http://localhost:8080/DFAWebServiceProxy//'s Observer 
Dec 16, 2010 10:42:34 AM org.apache.cxf.phase.PhaseInterceptorChain doDefaultLogging 
WARNING: Interceptor for {http://demo.mydemo.com/}DartProxyImplService has thrown exception, unwinding now 
org.apache.cxf.interceptor.Fault: No such operation: (HTTP GET PATH_INFO: /DFAWebServiceProxy/DartProxy) 
     at org.apache.cxf.interceptor.URIMappingInterceptor.handleMessage(URIMappingInterceptor.java:88) 
     at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255) 
     at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:113) 
     at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:97) 
     at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:461) 
     at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:188) 
     at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:148) 
     at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:179) 
     at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:108) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) 
     at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:159) 
     at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) 
     at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:401) 
     at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 
     at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) 
     at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766) 
     at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450) 
     at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) 
     at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) 
     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:542) 
     at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928) 
     at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549) 
     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:410) 
     at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) 
Dec 16, 2010 10:42:34 AM org.apache.cxf.ws.addressing.ContextUtils retrieveMAPs 
WARNING: WS-Addressing - failed to retrieve Message Addressing Properties from context 
Dec 16, 2010 10:42:34 AM org.apache.cxf.ws.addressing.ContextUtils retrieveMAPs 
WARNING: WS-Addressing - failed to retrieve Message Addressing Properties from context 
Dec 16, 2010 10:42:34 AM org.apache.cxf.ws.addressing.ContextUtils retrieveMAPs 
WARNING: WS-Addressing - failed to retrieve Message Addressing Properties from context 
Dec 16, 2010 10:42:34 AM org.apache.cxf.ws.addressing.ContextUtils retrieveMAPs 
WARNING: WS-Addressing - failed to retrieve Message Addressing Properties from context 
Dec 16, 2010 10:42:34 AM org.apache.cxf.binding.soap.interceptor.Soap12FaultOutInterceptor$Soap12FaultOutInterceptorInternal handleMessage 
INFO: class org.apache.cxf.binding.soap.interceptor.Soap12FaultOutInterceptor$Soap12FaultOutInterceptorInternalapplication/soap+xml 
Dec 16, 2010 10:42:35 AM org.apache.cxf.service.invoker.AbstractInvoker invoke 
SEVERE: Invocation without a binding operation. 
Dec 16, 2010 10:42:35 AM org.apache.cxf.service.invoker.AbstractInvoker invoke 
SEVERE: Invocation without a binding operation. 
Dec 16, 2010 10:42:35 AM org.apache.cxf.phase.PhaseInterceptorChain doDefaultLogging 
WARNING: Interceptor for {http://demo.mydemo.com/}DartProxyImplService has thrown exception, unwinding now 
org.apache.cxf.interceptor.Fault: No binding operation info while invoking unknown method with params unknown. 
     at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:60) 
     at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58) 
     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) 
     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:138) 
     at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37) 
     at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106) 
     at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255) 
     at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:113) 
     at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:97) 
     at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:461) 
     at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:188) 
     at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:148) 
     at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:179) 
     at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:103) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) 
     at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:159) 
     at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) 
     at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:401) 
     at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 
     at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) 
     at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766) 
     at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450) 
     at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) 
     at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) 
     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:542) 
     at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:945) 
     at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756) 
     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:410) 
     at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) 

Répondre

1

Vous devrez peut-être activer l'adressage WS sur votre service Java. L'erreur est levée car .NET affirme que le serveur doit comprendre un sous-ensemble de WS-Addressing et que le serveur ne répond pas à cette assertion.

http://cxf.apache.org/docs/ws-addressing.html


Ronde 2:

(S'il vous plaît, à l'avenir, marquer une question comme une réponse et poster un nouveau plutôt que de changer l'original.)

Il semble que le client .NET tente d'accéder à une opération, mais cette opération est inconnue/non implémentée? Essayez de réimporter le WSDL dans .NET et voyez si cela résout quelque chose. Aussi, importez-vous le WSDL hébergé par CXF, ou un fichier fait à la main? Vous devriez utiliser le fichier généré par CXF, au moins jusqu'à ce que tout le reste fonctionne.

+0

oui .. la vieille exception a disparu ,, mais un nouvel avertissement vient .... j'ai eu mettre à jour la question .. pouvez-vous m'aider à y jeter un coup d'oeil ?? – jojo

+0

je lance le service web java, puis saisis un lien dans un navigateur, CXF va générer le fichier WSDL ... et en visual studio ... je copie le lien depuis le navigateur, utilise l'interface graphique pour générer un proxy client – jojo

0

Eh bien, la ligne:

AbstractHTTPServlet.doGet(...) 

est une sorte de clé. Il obtient une requête GET, pas un POST qui serait nécessaire pour une demande SOAP. Vérifiez bien ce que fait le client pour vous assurer qu'il envoie une requête SOAP appropriée.

Questions connexes