You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by Shantanu Sen <ss...@pacbell.net> on 2007/07/06 01:57:33 UTC

Axis2-1.2 - ServiceClient configuration - question on the design of ServiceClient.configureServiceClient method

In the ServiceClient.configureServiceClient method it assumes that the ConfigurationContext will not have the AxisService that is target service for the current invocation as shown in the following code snippet:

---
private void configureServiceClient(ConfigurationContext configContext, AxisService axisService)
            throws AxisFault {
        initializeTransports(configContext);
        // save the axisConfig and service
        this.axisConfig = this.configContext.getAxisConfiguration();
        if (axisService != null) {
            this.axisService = axisService;
        } else {
            this.axisService = createAnonymousService();
        }
        if (this.axisConfig.getService(this.axisService.getName()) == null) {
            this.axisService.setClientSide(true);
            this.axisConfig.addService(this.axisService);
        } else {
            throw new AxisFault(Messages.getMessage(
                    "twoservicecannothavesamename",
                    this.axisService.getName()));
        }
----
What is the rationale for this code i.e. throwing an exception if the service is already there in the configuration?

If I am invoking multiple operations of the same service (or the same operation repeatedly multiple times), why cannot I re-use a ConfigurationContext that I have created previously?

I want to avoid the performance penalty of creating a new configuration context for the client (i.e. reading the axis2.xml, loading the modules and so forth) every time I invoke a service. So, I was thinking of creating a ConfigurationContext and storing it in a ThreadLocal, so that multiple invocations of the same service in the same thread can use the cached ConfigurationContext.

Thanks for any info on this.

Shantanu Sen