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


Reply via email to