Your SOAP message definitely does not look OK. You are trying to invoke
a service named AdvertisementService and this information is not carried
by the SOAP message. Your SOAP message should look like this:

POST /axis/services/AdvertisementService HTTP/1.0
Content-Length: 2418
Host: localhost
Content-Type: text/xml; charset=utf-8
SOAPAction: ""

<?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>

but you are setting too many unnecessary things in your SOAP Call.
You just need this:

Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress( new java.net.URL(getUrl()) );
                
Object[]  params
= new Object[] { 
new SOAPBodyElement(messageBody.getDocumentElement())};

Regards.

> -----Original Message-----
> From: Murray Spork [mailto:[EMAIL PROTECTED]]
> Sent: Wednesday, May 22, 2002 4:31 AM
> To: [EMAIL PROTECTED]
> Subject: More problems with document style
> 
> 
> 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>
> 

Reply via email to