Thanks, this works quite well. I now have my ant build generating the
server-config.wsdd files for all the services completely independently of
tomcat.
The only thing that would make this better is if the AdminClient had a
parameter to specify where to put the server-config.wsdd. Since it puts it
in the working directory(cwd), I either have to set the cwd before running
AdminClient, or copy it from cwd afterwards.
If anyone else is curious, I have:
<target name="bobh" depends="jar"
description="Prepare the bobh testing webapp in the build
directory" >
<!-- other steps omitted for brevity -->
<antcall target="axis-deploy">
<param name="axis-deploy-config-file"
value="${tst.webservices.dir}/bobh/deploy.wsdd"/>
<param name="axis-deploy-target-directory"
value="${build.test.webapps}/bobh/WEB-INF"/>
</antcall>
</target>
and
<target name="check-axis-deploy-needed"
description="utility for checking if axis deploy is up to date" >
<uptodate property="axis-deploy-not-required"
srcfile="${axis-deploy-config-file}"
targetfile="${axis-deploy-target-directory}/server-config.wsdd"/>
</target>
<target name="axis-deploy" depends="check-axis-deploy-needed"
unless="axis-deploy-not-required"
description="antcall-able target to do Axis deployment" >
<java classname="org.apache.axis.client.AdminClient" fork="yes">
<arg value="-l local:"/>
<arg value="${axis-deploy-config-file}"/>
<classpath refid="build.classpath" />
</java>
<move file="${basedir}/server-config.wsdd"
todir="${axis-deploy-target-directory}"/>
</target>
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]]On
Behalf Of Ulrich Winter
Sent: Friday, September 27, 2002 12:44 AM
To: [EMAIL PROTECTED]
Subject: Re: deployment without running tomcat
Robert,
> Is there a known way to use the AdminClient without first starting Tomcat
> (or whatever servlet container is hosting the Axis webservice)?
deployment of web services in axis needs two parts:
- make the classes available in the servers class path
(which is done in your first step)
- fill in the needed entries into server-config.wsdd
(this is what AdminClient realy does)
You may try the following to achieve deployment without a running servlet
engine:
Use AdminClient and specify a "local:" scheme in the -l option instead of
the "http:" scheme.
Look into java/tests/functional/TestTransportSample.java for an example.
This creates an Axis engine inside the calling process and writes a
server-config.wsdd file into the curent working directory.
Just try to copy this file to your WEB-INF/ directory.
By,
Uli