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-200401-wss-wsse curity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssec urity-utility-1.0.xsd"> <soap:Header> <wsa:Action/> <wsa:MessageID>urn:uuid:b15fd86f-2ec8-46cd-b803-78bd5d00ff76</wsa:Messag eID> <wsa:ReplyTo> <wsa:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anony mous</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(AddressingInHan dler.java:107) at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:1 31) at org.codehaus.xfire.transport.DefaultEndpoint.onReceive(DefaultEndpoint.j ava:64) at org.codehaus.xfire.transport.AbstractChannel.receive(AbstractChannel.jav a:38) at org.codehaus.xfire.transport.http.XFireServletController.invoke(XFireSer vletController.java:278) at org.codehaus.xfire.transport.http.XFireServletController.doService(XFire ServletController.java:130) at org.codehaus.xfire.transport.http.XFireServlet.doPost(XFireServlet.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.internalDoFilter(Applica tionFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt erChain.java:173) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilte r.java:96) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica tionFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt erChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv e.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv e.java:178) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAs sociationValve.java:175) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.j ava:74) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java :126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java :105) at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnecti onValve.java:156) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve. java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1 48) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:86 9) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.proc essConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint .java:527) at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorker Thread.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
