Hi all, I've read through the recent threads on document-style calls and I've also been through the source for AdminClient (as was suggested) but I'm still having trouble getting document-style SOAP calls to work in Axis Beta 2.
I'm getting the exception message "The AXIS engine could not find a target service to invoke! targetService is null" I deployed the service with a deployment descriptor like so: <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java" xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance"> <service name="AdvertisementService" provider="java:MSG"> <parameter name="className" value="AdvertisementService"/> <parameter name="allowedMethods" value="advertise"/> </service> </deployment> The signature of my service method looks like: public void advertise(Document xml); In the AdminClient the method actually takes a Vector of Element objects and returns an array of Element objects - I tried this first but it didn't work so I noticed that some on the messages on this list suggested a method sig that looks like the above (which seems more natural to me - why would you do it the other way?) So then on the client side - my code to call the service looks something like this: public void invokeService(Document xmlBody) { // Initialize our Service - Service service = new Service(); Call call = (Call) service.createCall(); call.setTargetEndpointAddress( new java.net.URL(getUrl()) ); call.setOperationName( "advertise" ); // doesn't do anything? call.setOperationStyle("document"); call.setUseSOAPAction( true ); call.setSOAPActionURI("DiscoveryMessagingService" ); call.setTargetService("DiscoveryMessagingService"); // the last line doesn't seem to do anything Object[] params = new Object[] { new SOAPBodyElement(messageBody.getDocumentElement())}; call.invoke(params); } In the axis server it's bombing out at line 282 in org.apache.axis.server.AxisServer.invoke(). I tried looking through thie source code and working back from there to find out where it is looking for the targetService (I assume it gets this from the SOAPAction header) - but I couldn't figure it out. Any help would be most appreciated Thanks Murray Spork P.S. here's what my SOAP request looks like (from TCPMonitor) POST /axis/servlet/AxisServlet HTTP/1.0 Content-Length: 2418 Host: localhost Content-Type: text/xml; charset=utf-8 SOAPAction: "DiscoveryMessagingService" <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body><advertise><!-- some more xml here --> </advertise> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
