axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Shantanu Sen <s...@pacbell.net>
Subject question regarding axis in tomcat
Date Wed, 13 Aug 2003 21:05:55 GMT
When an invokation to a ws endpoint happens, the
URLMapper.invoke is called which does a
MessageContext.getTargetService, which eventually goes
to WSDDDeployment.getService. In WSDDDeployment the
available services are stored in a HashMap, the key
being the service name. This map is initialized during
axis startup from the deployed services.

Now if the service name has spaces e.g. "My Service",
I see a problem when running axis with tomcat 4.1.24.
When the invokation is done, the URL will be encoded,
i.e it will be like
http://host:port/axis/My+Service/...
Axis gets the path to the service from this invokation
from  a MessageContext property:
msgContext.getProperty(
  HTTPConstants.MC_HTTP_SERVLETPATHINFO)

This property is stored by AxisServlet (during the
doGet/doPost call) using
HttpServletRequest.getPathInfo
In this version of tomcat this call is returning the
non-url-decoded path i.e. in this case "My+Service".

As a result, the service cannot be found. If I use
tomcat version 4.0.4. then the call returns fine e.g.
it returns "My Service" and there is no problem for
axis finding the service.

Is this a known problem? 

Another issue is that to work around this, I do not
see any other option other than overrifing the
AxisServlet doGet and doPost. Ideally if the
createMessageContext method in AxisServlet is
protected instead of private, I could override that to
fix it. Any ideas why this is not protected? 

I am using axis 1.1

Thanks for any help.
Shantanu Sen

Mime
View raw message