Deployment Known Limitations
Component Manager Not Available
Unlike all other SDK components, deploying Web services custom components does not use the SDK WSComponentManager. Web services custom components do not get uploaded to the WorldServer database through , as do other components.
Instead, you must copy your Web services custom component JARs into the proper place on your application server computer, …/WEB-INF/lib/ in your installed WorldServer application folder.
org.apache.axis.client.AdminClient must be invoked manually, passing as parameters the target WorldServer Web services URL and the Web services deployment descriptor. For example:
toolkit> java org.apache.axis.client.AdminClient -l
http://localhost:8080/ws-legacy/services deploy.wsdd
Special considerations apply to this deployment mechanism in a cluster environment and with re-installation or upgrade of WorldServer.
In a cluster environment, you must deploy your custom Web services server JARs on every node in the cluster, and you might need to restart each node (if hot deployment does not work properly).
When WorldServer is re-installed or upgraded, you must preserve and restore all custom Web services JARs. Otherwise they could easily get lost in the transition. In addition, you should deploy the new versions of any sample components that you had previously installed.
Axis Clients Not Compatible with Dynamic Reloading
Axis clients do not work properly in WorldServer if the Web services client classes are dynamically reloaded as part of other WorldServer components such as Automatic Actions.
Multiple inconsistent versions of classes can result from uploading Web services client classes as part of the Zip file of another component (such as an Automatic Action). This may be due to Axis class caches not being refreshed when classes are dynamically reloaded. Axis XML serializers cache classes and bean getter and setter methods of those classes. When a class is reloaded by the WorldServer component class loader when the Automatic Action is executed after any upload operation, some parts of Axis serializers may still refer to obsolete versions of the class and its methods.
java.lang.IllegalArgumentException: object is not an instance of declaring class
To avoid this situation, package your Axis client classes in a separate JAR and deploy them manually on each application server by copying them to …/WEB-INF/lib/. Avoid uploading them on the fly as part of automatic-action or other component Zip files. Split the componentdependent Axis Web client classes so that the system class-loader will load them only once, instead of them being re-uploaded every time by the WorldServer component class loader.