ColdFusion, Axis, Windows .NET and Web Services

We have done a number of projects integrating with clients’ systems which have required either publishing or consuming web services. In the past we did this using Apache Axis. Since CF7 we have switched to ColdFusion which provides a very convenient way of developing Web Services.

When using web services in general

  • Methods passing simple types are very straight forward; just follow the Adobe documentation.
    • ColdFusion does a good job of converting the types.
    • Use javacast() if CF gets it wrong
  • Methods that pass a single class, map to a ColdFusion structure.
  • Methods that pass a nested class, map to a nested ColdFusion structure.
    • See the following example on calling the LiveCycle Reader Extensions web service
    • You may need to use ‘javacast()’ for null values

Specifically for .Net

  • Interoperability with .Net is now generally quite good
  • If the web services is using Windows authentication or you need to use SSL:
    • You need to replace the Apache Axis authentication library with a different Apache library. See here.
    • Drop the Jakatra libraries into the cold fusion lib directory and modify the client-config.wsdd
    • See also Tom Jordahl’s musings on this topic.
    • We tried in the CF8 beta program to get the Apache libraries into the default installation for ColdFusion8; hopefully it will find its way into a future version.
  • Other Apache Axis and .net hints can be found here.

2 Responses to “ColdFusion, Axis, Windows .NET and Web Services”

  1. Jenn says:

    Very, very helpful article. I actually think I might understand how to do this now. Only thing I’m really unsure of is where to get the axis jars. I woudl have thought they would have to be on my server somewhere already in order for the webservices to be working at all; however, I can’t find them. Do I need to download somethign specific to get this to start working, if so can you tell me where to get it from?

  2. David Rutter says:

    Hi Jenn,

    The word ‘replace’ is misleading; there is no need to change the actual Axis libraries; they are in the standard ColdFusion installation and should be left alone.

    The change to the client-config file will ensure that the apache libraries that you drop into the ColdFusion installation, are used in place of the default authentication.

Leave a Reply