You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by Daniel Wickstrom <da...@rtp.ericsson.se> on 2002/10/16 20:30:25 UTC

engine could not find a target service to invoke!

I'm currently working on integrating axis with aolserver, and I've run
into a problem that it probably easy to solve, but I don't understand
all of the internal workings of axis, so probably somebody here can
point me in the right direction.  

Basically, what I'm doing is using aolserver to act as the http
transport, and I'm passing the headers and content to the axis engine
which I've loaded in a module called nsjava which embeds a jvm
in-process with aolserver.  To implement, the axis engine, I've
used SimpleAxisWorker.java as a starting point and modified it so that
I can pass in the headers and content from aolserver.

For a test case, I'm trying the samples/echo test, and I'm using the
TestClient to send the soap messages to aolserver.

When, I run the test, I get the following message:

% java samples.echo.TestClient -h localhost -p 8002
echoString                Fault: The AXIS engine could not find a target service to invoke!  targetService is null
echoStringArray           Fault: The AXIS engine could not find a target service to invoke!  targetService is null
echoInteger               Fault: The AXIS engine could not find a target service to invoke!  targetService is null
  ...                          

So far I've traced the problem to this bit of code in AxisServer.java:




                h = msgContext.getService();
                if (h == null) {
                    // It's possible that we haven't yet parsed the
                    // message at this point.  This is a kludge to
                    // make sure we have.  There probably wants to be
                    // some kind of declarative "parse point" on the handler
                    // chain instead....
                    Message rm = msgContext.getRequestMessage();
                    rm.getSOAPEnvelope().getFirstBody();
                    h = msgContext.getService();
                    if (h == null)
                        throw new AxisFault("Server.NoService",
                                            Messages.getMessage("noService05",
                                                                 "" + msgContext.getTargetService()),
                                            null, null );

I'm seeing that h is null after the second getService call.  If I
compare this with SimplerAxisServer's operation, I see that h becomes
not null after the second getService call.  I'm thinking this is just
due to some problem with the relative location of server-config.wsdd
relative to where I'm starting aolserver.  I notice that if I start
SimpleAxisServer outside of the axis home directory, I get the same
error message from SimpleAxisServer when running this test case.  Any
suggestions?

Regards,

Dan