axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kennard Consulting (JIRA)" <>
Subject [jira] Updated: (AXIS-2359) AxisServlet does not set targetService on MessageContext
Date Wed, 28 Feb 2007 04:01:19 GMT


Kennard Consulting updated AXIS-2359:

    Priority: Critical  (was: Major)

> AxisServlet does not set targetService on MessageContext
> --------------------------------------------------------
>                 Key: AXIS-2359
>                 URL:
>             Project: Axis
>          Issue Type: Bug
>    Affects Versions: 1.3, 1.4
>         Environment: JDK 1.5.0_03-b07 on Windows XP
>            Reporter: Jeremy Rosenberger
>            Priority: Critical
> First some background: I'm "embedding" Axis into a Jetty server using AxisServlet; the
Axis configuration is coming from a .wsdd file that I'm configuring using a FileProvider.
I was using a slightly hacked version of SimpleAxisWorker to hand off the HTTP connection
from Jetty to Axis. Although this worked fine, once I discovered AxisServlet I thought it
would provide a much cleaner integration.
> In any case, when using AxisServlet, any SOAP request (or even trying to fetch the WSDL
for a service) results in an AxisFault with faultCode "{}Server.NoService"
and faultString "The AXIS engine could not find a target service to invoke!  targetService
is null". Tracing through the code, I don't see where AxisServlet's logic even tries to set
the targetService on the MessageContext.
> I noticed that JWSHandler sets service information on the MessageContext, so perhaps
everyone else using AxisServlet is deploying through JWS?
> The proposed fix is fairly straightforward: In AxisServlet.createMessageContext(), add
some code that calls MessageContext.setTargetService(). The code I added is very similar to
a portion of processQuery(), so perhaps some common code could even be factored out:
>         String serviceName;
>         String servletURI = req.getContextPath() + req.getServletPath();
>         String reqURI = req.getRequestURI();
>         // chop off '/'.
>         if (servletURI.length() + 1 < reqURI.length()) {
>             serviceName = reqURI.substring(servletURI.length() + 1);
>         } else {
>             serviceName = "";
>         }
>         try {
>             msgContext.setTargetService(serviceName);
>         } catch (AxisFault af) {
>   "Exception setting targetService on MessageContext " +
>         }
> Of course it's entirely possible that AxisServlet is working fine, and I'm overlooking
something. In that case I'd appreciate further insight. Thanks!

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message