• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
  • Campbell Ritchie
  • Ron McLeod
  • Paul Clapham
  • Bear Bibeault
  • Junilu Lacar
  • Jeanne Boyarsky
  • Tim Cooke
  • Henry Wong
Saloon Keepers:
  • Tim Moores
  • Stephan van Hulst
  • Tim Holloway
  • salvin francis
  • Frits Walraven
  • Scott Selikoff
  • Piet Souris
  • Carey Brown

WSAD, Apache Axis, and client-config.wsdd

Posts: 4
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I am using Apache Axis 1.1 and WSAD 5.1.0. I have created my own custom handlers and have added my own client-config.wsdd file. I am having trouble with WSAD picking up my file rather than the client-config.wsdd contained in the axis.jar or in the wsif.jar.

I have read the FAQ concerning where to place the client-config.wsdd file it says to :

1. Place the file in the working directory of the process in which it is running


2. If no client-config.wsdd was found then it checks on the classpath in the package org/apache/axis/client

I have tried placing my client-config.wsdd file in a variety of places including the root of the EAR, a WEB-INF folder I created in the EAR, placing it in a variety of locations in the package org.apache.axis.client. None of these places seems to override the client-config.wsdd in the axis.jar or wsif.jar files. I thought that this might be an issue with the order classes are being loaded until I removed the client-config.wsdd file from the axis.jar and the wsif.jar. When I did this, I received a "org.apache.axis.ConfigurationException: No engine configuration file - aborting!" error. So, if this is a solution, what is my working directory?

3.Using the system property axis.ClientConfigFile=/location/of/client-config.wsdd

This works great; however, I develop on a Windows 2000 machine and deploy to a Linux machine. I am also setting the system property in my code. I know that I can use ANT to replace the value for me based on my deployment task for each environment, but this seems way more difficult than it needs to be.

Also, rather than using the name client-config.wsdd, I have changed the name to be specific to my application -- like xxx-client-config.wsdd -- and tried to place it in a directory within my classpath, but it still can't find the file. I receive the "org.apache.axis.ConfigurationException: No engine configuration file - aborting!" error. It seems like I have the same question here, where is my working directory?

My custom client-config.wsdd and xxx-client-config.wsdd files can be found if I place them in the axis.jar or the wsif.jar. But, I really don't want to be changing jar files. It starts becoming a maintenance nightmare.

Has anyone else run across this problem? Am I missing something obvious? My preferred solution would be to not alter the axis.jar or wsif.jar files and to be able to place my client-config.wsdd file in the working directory -- even if this means setting the system property in my code to be something like .
Aimme Keener
Posts: 4
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Here is what I found out from my testing:

1. WSAD's working directory is -
<WSAD Install Directory>\v5.1\runtimes\base_v5\bin
It would be very strange to place an application specific file here.

2. The application's client-config.wsdd can be found if I create a shared library and add it to the server's classloader. But, this is still platform specific.

3. The system property "axis.ClientConfigFile" can be set without using the absolute path (thus, avoiding being platform specific).

That's exactly what I wanted it to do! My application's code interacting with Axis was in a jar file. If I placed the client config file in the jar file, it could be found. First, I placed it in the base or the root of the directory of the jar. That worked fine. I also found out that I can place it in a package and have it found there, too:

System.setProperty("axis.ClientConfigFile", "com/package/xxx-client-config.wsdd");

Because of the issue I had noticed with the client-config.wsdd file being picked up first in wsif.jar and then the axis.jar, I decided make the name of my client-config.wsdd file application specific.
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
    Bookmark Topic Watch Topic
  • New Topic