After resorting to reading the documentation(!), I found out why we were
getting the "The AXIS engine could not find a target service to invoke!
targetService is null" error message. I'll just put an excerpt from the doc
here:

## start of doc ##

How does Axis figure out which deployed service to call?

Axis has a very flexible dispatch mechanism, with three built-in options,
and the ability to customize your own.  Dispatch to a service in Axis really
means setting the service field in the MessageContext as it flows through
the various Handlers in your configuration.  Once the service is set, the
engine will be able to call it at the appropriate time.  So who does the
setting?  Any Handler who wants to.
The default dispatch mechanism for Axis is by URL, so that if you access
http://myhost/axis/services/WeatherReport, you will get the "WeatherReport"
service.  This mechanism works because the HTTP transport in Axis has the
URLMapper (org.apache.axis.handlers.http.URLMapper) Handler deployed on the
request chain.  The URLMapper takes the incoming URL, extracts the last part
of it as the service name, and attempts to look up a service by that name in
the current EngineConfiguration.

Similarly you could deploy the HTTPActionHandler to dispatch via the
SOAPAction HTTP header.  You can also feel free to set the service in your
own custom way - for instance, if you have a transport which funnels all
messages through a single service, you can just set the service in the
MessageContext before your transport calls the AxisEngine.  Or if you
dispatch based on the contents of a SOAP header, or the time of day, you
could write a Handler which did that.

If no Handler has set the service by the time someone needs to deserialize
the SOAP message, we will attempt to look it up using the namespace of the
first body element.  So for instance:

<SOAP:Body>
  <ns:MyMethod xmlns:ns="http://xml.apache.org/axis/Weather"/>
</SOAP:Body>

This message would look up "http://xml.apache.org/axis/Weather"; in the
namespace mapping list to see if there was an associated service.

## end of doc ##

After reading this I changed the url I was calling to
http://myhost/myapp/services/MyService and all was fine. The service names
can be found at http://myhost/myapp/servlet/AxisServlet.

Dustin Williams


-----Original Message-----
From: Dustin D. Williams [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, July 24, 2002 10:08 AM
To: [EMAIL PROTECTED]
Subject: RE: problem with samples/userguide/example5


I am having the same problem, too. I seem to get this error no matter what
service I try, though.

Dustin Williams

-----Original Message-----
From: Li, Peng [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, July 24, 2002 9:34 AM
To: '[EMAIL PROTECTED]'
Subject: problem with samples/userguide/example5


Hi,

i iust use jdk1.3.1 and axis-beta3 and try to run example5 in 2 steps, which
was written in the Axis User's Guide Beta 2 Version
1) java org.apache.axis.client.AdminClient -llocal:///AdminService
deploy.wsdd
2) java samples.userguide.example5.Client -llocal://

but it comes with the error message:
- Mapping Exception to AxisFault
AxisFault
 faultCode: {http://xml.apache.org/axis/}Server.NoService
 faultString: The AXIS engine could not find a target service to invoke!
target
Service is
 faultActor: null
 faultDetail:
        stackTrace: AxisFault
 faultCode: {http://xml.apache.org/axis/}Server.NoService
 faultString: The AXIS engine could not find a target service to invoke!
target
Service is
 faultActor: null
 faultDetail:

The AXIS engine could not find a target service to invoke!  targetService is
        at org.apache.axis.server.AxisServer.invoke(AxisServer.java:303)
        at
org.apache.axis.transport.local.LocalSender.invoke(LocalSender.java:1
58)
        at
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrateg
y.java:71)
        at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:150)
        at org.apache.axis.SimpleChain.invoke(SimpleChain.java:120)
        at org.apache.axis.client.AxisClient.invoke(AxisClient.java:183)
        at org.apache.axis.client.Call.invokeEngine(Call.java:2027)
        at org.apache.axis.client.Call.invoke(Call.java:2016)
        at org.apache.axis.client.Call.invoke(Call.java:1786)
        at org.apache.axis.client.Call.invoke(Call.java:1711)
        at org.apache.axis.client.Call.invoke(Call.java:1251)
        at samples.userguide.example5.Client.main(Client.java:97)


The AXIS engine could not find a target service to invoke!  targetService is
        at
org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.
java:135)
        at
org.apache.axis.encoding.DeserializationContextImpl.endElement(Deseri
alizationContextImpl.java:904)
        at
org.apache.xerces.parsers.SAXParser.endElement(SAXParser.java:1403)
        at
org.apache.xerces.validators.common.XMLValidator.callEndElement(XMLVa
lidator.java:1550)
        at
org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.disp
atch(XMLDocumentScanner.java:1149)
        at
org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentS
canner.java:381)
        at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1098)
        at javax.xml.parsers.SAXParser.parse(SAXParser.java:393)
        at
org.apache.axis.encoding.DeserializationContextImpl.parse(Deserializa
tionContextImpl.java:213)
        at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:457)
        at org.apache.axis.Message.getSOAPEnvelope(Message.java:362)
        at org.apache.axis.client.Call.invokeEngine(Call.java:2046)
        at org.apache.axis.client.Call.invoke(Call.java:2016)
        at org.apache.axis.client.Call.invoke(Call.java:1786)
        at org.apache.axis.client.Call.invoke(Call.java:1711)
        at org.apache.axis.client.Call.invoke(Call.java:1251)
        at samples.userguide.example5.Client.main(Client.java:97)
Error : The AXIS engine could not find a target service to invoke!
targetServic
e is

is there any change between Beta 2 and Beta 3 in relating to this example?

thanks in advance

Peng Li





Reply via email to