Hello,
I'm trying to determine the correct way to invoke a web service, from
within a servlet container context, which is itself running an Axis server.
My specific scenario is that I'm running Tomcat 4.1, and I have a
webapp which contains the Axis jars and server-config.wsdd. This webapp
should both publish and consume my web services. (In each case, the
other party is another, similar Tomcat/Axis server.) In addition, I
have some custom typemappings that need to work on both client and
server end.
I have no problem configuring the Axis server to publish my services
with the custom typemappings. However, I don't know how to create a
Service and a Call, from within the same webapp, which use the
typemappings from server-config.wsdd. It seems like there should be an
easy way to do this (without replicating config information anywhere).
I can get an instance of AxisServer by calling
AxisServletBase.getEngine(someOtherServlet). This AxisServlet has the
typemappings from server-config.wsdd. Next, I've tried the following
techniques:
new Service(axisServer.getConfig()).createCall();
new Service(axisServer.getClientEngine().getConfig()).createCall();
new
Service().setTypeMappingRegistry(axisServer.getTypeMappingRegistry());
... and some other permutations as well. In the first case,
Call.invoke() behaves very oddly, I think because it has server-side
handlers instead of client-side handlers. In both the first and second
cases, a subsequent check of Service.getTypeMappingRegistry() shows that
my custom mappings did not actually transfer over. In the third
case.... well here's the implementation of
Service.setTypeMappingRegistry() from axis/client/Service.java:
public void setTypeMappingRegistry(TypeMappingRegistry registry)
throws ServiceException {
}
A no-op. That was a fun surprise. Anyhow, I will continue digging
through the source, but I thought someone on this list would probably
already know the *correct* way to acheive this. Note that I am trying
to avoid having a second client.wsdd file, or programmatically copying
over the individual Mappings, because both of these techniques
unnecessarily replicate configuration data. I hope there is something
better.
Thanks!
Jim
- deserializer problem Jim Carlson
- deserializer problem Xavier Renard
- Re: deserializer problem Jue \(Jacky\) Shu
- Re: deserializer problem Xavier Renard
- Re: Configuring Axis client within webapp Phil Cornelius
- Re: Configuring Axis client within webapp Jim Carlson
- REPOST: Configuring Axis client within webapp Jim Carlson