You mention, "according to your wsdl" How did you generate the dot net client? From the wsdl served up by the running xfire service? Or from a wsdl you used to generate the service itself?
In the latter case I think you're hitting an xfire bug. It's sort of mixed up in the XFIRE-509 issue[1], but if you use a string array anywhere, (or for that matter, an unbounded element in your schema) the xfire service generated from the wsdl, will create a wsdl at runtime that is incompatible with the original wsdl, namely, the packagename based namespaces. The reason you don't see any problems with the xfire client is that the client presumably makes the same mistakes as the server generation did. (I've not tried using xfire as a client yet, and don't really intend to) Probably a bug in the Action handling too :) Cheers, Karl P > -----Original Message----- > From: Christopher Moesel [mailto:[EMAIL PROTECTED] > Sent: Wednesday, December 13, 2006 10:27 PM > To: [email protected] > Subject: RE: [xfire-user] Trouble using C# WSE 3.0 Client w/ > XFire JSR181 service w/MTOM enabled > > An Update: > > > > According to my WSDL-the C# client was sending the right > namespace-it was the XFire Proxy client that had it wrong (it > was using package name). > > > > I found a great tool for sending SOAP requests at: > http://www.soapui.org/ and did some testing. > > > > Sure enough, if I remove the WS-Addressing elements from the > header, it works fine. So it does have to do with > WS-Addressing. Now I'm trying to figure out why the > addressing isn't working... I've clearly set the addressing in > and out handlers in XFire-and specified an action for each > method (starting with "urn:"). When the client uses the > wsa:Action tag to specify the action, however, XFire > complains that the Action does not exist in the service! > > > > I'm using a daily build from 11/27/2006-is anyone aware of > any WS-Addressing bugs like this in recent builds? > > > > SOAP request/response and JSR 181 annotations: > > > > JSR 181 Method: > > > > @WebMethod(operationName = "getMyDevices", action = > "urn:GetMyDevices") > > String[] getMyDevices() throws MyWSException; > > > > REQUEST: > > > > <soap:Envelope > xmlns:xop="http://www.w3.org/2004/08/xop/include" > xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" > xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-20040 > 1-wss-wssecurity-secext-1.0.xsd" > xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401 > -wss-wssecurity-utility-1.0.xsd"> > > <soap:Header> > > <wsa:Action>urn:GetMyDevices</wsa:Action> > > > <wsa:MessageID>urn:uuid:7683d353-c24a-45ac-a1ba-cb253b64b0fb</ > wsa:MessageID> > > <wsa:ReplyTo> > > > <wsa:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/ > role/anonymous</wsa:Address> > > </wsa:ReplyTo> > > > <wsa:To>http://cmoeselhp:8080/myws/services/MyWebService</wsa:To> > > <wsse:Security> > > <wsu:Timestamp > wsu:Id="Timestamp-9152e173-6ef9-4d0f-8b2c-8004166e6c77"> > > > <wsu:Created>2006-12-13T20:27:18Z</wsu:Created> > > > <wsu:Expires>2006-12-13T20:32:18Z</wsu:Expires> > > </wsu:Timestamp> > > </wsse:Security> > > </soap:Header> > > <soap:Body> > > <getPlaybackDevices > xmlns="http://www.avid.com/ws/myws" /> > > </soap:Body> > > </soap:Envelope> > > > > RESPONSE: > > > > <soap:Envelope > xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> > > <soap:Body> > > <soap:Fault> > > <faultcode>soap:Client</faultcode> > > <faultstring>Action 'urn:GetMyDevices' was not found > for service > http://cmoeselhp:8080/myws/services/MyWebService</faultstring> > > </soap:Fault> > > </soap:Body> > > </soap:Envelope> > > > > Thanks for any help you can provide! > > > > -Chris > > > > > > -----Original Message----- > From: Christopher Moesel [mailto:[EMAIL PROTECTED] > Sent: Wednesday, December 13, 2006 3:33 PM > To: [email protected] > Subject: RE: [xfire-user] Trouble using C# WSE 3.0 Client w/ > XFire JSR181 service w/MTOM enabled > > > > Ah... I saw the empty <wsa:Action /> element and immediately > jumped to conclusions that the "Action '' not found..." was > referring to that. That actually caused me to realize I was > not setting an action in my annotations-so I went ahead and > did that. After setting the action in my service to > "urn:GetMyDevices", I now get the error: > > > > Action 'urn:GetMyDevices' was not found... > > > > So it sounds like maybe you're right-the NS is screwing it > up. I'll check it out. > > > > Thanks, > > Chris > > > > -----Original Message----- > From: Ruth, Brice D [mailto:[EMAIL PROTECTED] > Sent: Wednesday, December 13, 2006 3:23 PM > To: [email protected] > Subject: RE: [xfire-user] Trouble using C# WSE 3.0 Client w/ > XFire JSR181 service w/MTOM enabled > > > > The namespace definition on getMyDevices may actually be the > root of your problem. The NS will define the visibility of > that request, and I'm guessing that the correct NS is in fact > http://myws.webservices.avid.com - which is what XFire is > looking for when it parses out the request XML. It doesn't > find anything in that namespace, so what it sees (after parsing) is: > > > > <soap:Body> > > > > </soap:Body> > > > > Which would correspond nicely with the error message you're > seeing (no action "") - its expecting a method invocation in > the body and getting an empty set, so it has no idea what to invoke. > > > > You can use a tool like JMeter (or other SOAP tools out > there) to copy/paste the XML from proxyTrace and re-invoke > your service. I bet if you leave in all the WS-* > gobbledy-gook, but change the NS declaration on that one > element, it'll work. (this is a no-money bet, just to be clear ;-) ) > > > > -Brice > > > > -----Original Message----- > From: Christopher Moesel [mailto:[EMAIL PROTECTED] > Sent: Wednesday, December 13, 2006 2:14 PM > To: [email protected] > Subject: RE: [xfire-user] Trouble using C# WSE 3.0 Client w/ > XFire JSR181 service w/MTOM enabled > > Thanks for the tip-I hadn't tried proxyTrace before. It > looks like WSE 3.0 is putting in a lot of additional > headers-most notably the WS-Addressing headers, which are > what I think the service is choking on. I guess I need to > figure out how to get rid of those... I also noted that the > clients are using different namespaces... but I don't think > that's my problem. > > > > Thanks again-sample requests are below for those interested. > > > > -Chris > > > > XFire client request: > > > > <soap:Envelope > xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> > > <soap:Body> > > <getMyDevices xmlns="http://myws.webservices.avid.com" /> > > </soap:Body> > > </soap:Envelope> > > > > C# WSE 3.0 Request: > > > > <soap:Envelope > xmlns:xop="http://www.w3.org/2004/08/xop/include" > xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" > xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-20040 > 1-wss-wssecurity-secext-1.0.xsd" > xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401 > -wss-wssecurity-utility-1.0.xsd"> > > <soap:Header> > > <wsa:Action/> > > > <wsa:MessageID>urn:uuid:b15fd86f-2ec8-46cd-b803-78bd5d00ff76</ > wsa:MessageID> > > <wsa:ReplyTo> > > > <wsa:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/ > role/anonymous</wsa:Address> > > </wsa:ReplyTo> > > > <wsa:To>http://cmoeselhp:8080/myws/services/MyWebService</wsa:To> > > <wsse:Security> > > <wsu:Timestamp > wsu:Id="Timestamp-d35f0e50-c193-4051-ae01-101c8fc259f4"> > > > <wsu:Created>2006-12-13T19:46:17Z</wsu:Created> > > > <wsu:Expires>2006-12-13T19:51:17Z</wsu:Expires> > > </wsu:Timestamp> > > </wsse:Security> > > </soap:Header> > > <soap:Body> > > <getMyDevices > xmlns="http://www.avid.com/ws/myws" /> > > </soap:Body> > > </soap:Envelope> > > > > -----Original Message----- > From: Ruth, Brice D [mailto:[EMAIL PROTECTED] > Sent: Wednesday, December 13, 2006 2:27 PM > To: [email protected] > Subject: RE: [xfire-user] Trouble using C# WSE 3.0 Client w/ > XFire JSR181 service w/MTOM enabled > > > > Have you compared the SOAP/XML request that is sent by the > XFire proxy client and the WSE/C# client? I would guess that > the SOAP message is different and that it is packaging the > wsdl:operation differently. Put something like proxyTrace > inbetween and see what you get. That might help you go back > to the support folks for the WSE/C# client and ask them why > they aren't packaging up the SOAP/XML in the way that the > XFire proxy client is. > > > > Until you know more about the actual message being passed, it > will be difficult to determine where fault lies. > > > > Cheers, > > Brice > > > > -----Original Message----- > From: Christopher Moesel [mailto:[EMAIL PROTECTED] > Sent: Wednesday, December 13, 2006 1:24 PM > To: [email protected] > Subject: [xfire-user] Trouble using C# WSE 3.0 Client w/ > XFire JSR181 service w/MTOM enabled > > Hello, > > > > I am using XFire to publish a web service using JSR181 > annotations w/ MTOM enabled (via a Spring config file). I > have successfully used an XFire proxy client to send binary > data, so I know the web service on the server is working correctly. > > > > I am trying to create a C# client to do the same, using WSE > 3.0. When I use the C# client to call the service, however, > I always get the following error: > > > > System.Web.Services.Protocols.SoapHeaderException was unhandled > > Message="Action '' was not found for service > "http://cmoeselhp:8080/myws/services/MyWebService" > > > > The corresponding server error is: > > > > 14:08:32,728 INFO [DefaultFaultHandler] Fault occurred! > > org.codehaus.xfire.fault.XFireFault: Action '' was not found > for service http://cmoeselhp:8080/myws/services/MyWebService > > at > org.codehaus.xfire.addressing.AddressingInHandler.invoke(Addre > ssingInHandler.java:107) > > at > org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipel > ine.java:131) > > at > org.codehaus.xfire.transport.DefaultEndpoint.onReceive(Default > Endpoint.java:64) > > at > org.codehaus.xfire.transport.AbstractChannel.receive(AbstractC > hannel.java:38) > > at > org.codehaus.xfire.transport.http.XFireServletController.invok > e(XFireServletController.java:278) > > at > org.codehaus.xfire.transport.http.XFireServletController.doSer > vice(XFireServletController.java:130) > > at > org.codehaus.xfire.transport.http.XFireServlet.doPost(XFireSer > vlet.java:116) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) > > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilt > er(ApplicationFilterChain.java:252) > > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(Appli > cationFilterChain.java:173) > > at > org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyH > eaderFilter.java:96) > > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilt > er(ApplicationFilterChain.java:202) > > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(Appli > cationFilterChain.java:173) > > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardW > rapperValve.java:213) > > at > org.apache.catalina.core.StandardContextValve.invoke(StandardC > ontextValve.java:178) > > at > org.jboss.web.tomcat.security.SecurityAssociationValve.invoke( > SecurityAssociationValve.java:175) > > at > org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccCont > extValve.java:74) > > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHost > Valve.java:126) > > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReport > Valve.java:105) > > at > org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(Cach > edConnectionValve.java:156) > > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEn > gineValve.java:107) > > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdap > ter.java:148) > > at > org.apache.coyote.http11.Http11Processor.process(Http11Process > or.java:869) > > at > org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHa > ndler.processConnection(Http11BaseProtocol.java:664) > > at > org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolT > cpEndpoint.java:527) > > at > org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterS > laveWorkerThread.java:112) > > at java.lang.Thread.run(Unknown Source) > > > > I get the error even when attempting to access operations > that don't even use binary data. > > > > If I don't use the WSE version of the C# client (and turn off > MTOM on the server), then everything works fine. > > > > I used the following directions to create the C# WSE 3.0 client: > > http://msdn.microsoft.com/library/default.asp?url=/library/en- > us/wse3.0/html/510c53cb-4ded-47ab-9fbd-ab82ed229526.asp > > http://msdn.microsoft.com/library/default.asp?url=/library/en- > us/wse3.0/html/b4b19453-e4e4-4056-906d-72504ed8c0df.asp > > > > Any help (or examples of working C# clients w/ MTOM) is > greatly appreciated! > > > > -Chris > > > > > > --------------------------------------------------------------------- To unsubscribe from this list please visit: http://xircles.codehaus.org/manage_email
