Greetings.
I have a web service, which I successfully deployed on a running Axis server.
Now I am trying to get it to work without a running Axis server by deploying
Axis as a part of webapp.
I updated my webapp's web.xml and server-config.xml files to match those used
on the Axis server. I also added all required axis jars in WEB-INF/lib. Then I
shut down the Axis server and deployed my webapp. It deployed without errors.
The service I am trying to deploy is a calendar service. This calendar service
is listed when I go to the following URL:
http://localhost:8080/calendar3/services
When I go to http://localhost:8080/calendar3/services/calendar the page says:
calendar
Hi there, this is an AXIS service!
However, when I try to have Axis generate the wsdl for this service by going to
http://localhost:8080/calendar3/services/calendar?wsdl I get the following
exception:
{http://xml.apache.org/axis/}stackTrace:The AXIS engine could not find a target
service to invoke! targetService is null
The full stack trace is shown at the end of this message.
I am running Axis 1.2 RC2 on Tomcat 5.0. The code that throws the AxisFault is
shown below:
/**
* At this point, the service should have been set by someone
* (either the originator of the MessageContext, or one of the
* transport or global Handlers). If it hasn't been set, we
* fault.
*/
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();
if (rm != null) {
rm.getSOAPEnvelope().getFirstBody();
h = msgContext.getService();
}
if (h == null) {
throw new
AxisFault(Constants.QNAME_NO_SERVICE_FAULT_CODE,
Messages.getMessage("noService05",
"" +
msgContext.getTargetService()),
null, null );
}
}
I noticed that there was a similar bug submitted some time ago:
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=21550
Has this issue been resolve and what do I need to do to fix this?
Thanks.
Oleg
Full StackTrace:
2005-01-23 12:02:19,234: org.apache.axis.utils.NSStack,DEBUG,: NSPop (empty)
AxisFault
faultCode: {http://xml.apache.org/axis/}Server.NoService
faultSubcode:
faultString: The AXIS engine could not find a target service to invoke!
targetService is null
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:The AXIS engine could not find a target
service to invoke! targetService is null
at org.apache.axis.server.AxisServer.generateWSDL(AxisServer.java:460)
at org.apache.axis.transport.http.QSWSDLHandler.invoke(QSWSDLHandler.java:62)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at
org.apache.axis.transport.http.AxisServlet.processQuery(AxisServlet.java:1132)
at org.apache.axis.transport.http.AxisServlet.doGet(AxisServlet.java:233)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
at
org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:301)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:284)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:204)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:257)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:564)
at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:245)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:199)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:564)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:195)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:164)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:149)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:564)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:156)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:564)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:972)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:206)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:700)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:584)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)
{http://xml.apache.org/axis/}hostname:magnum