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 "Davanum Srinivas (JIRA)" <ji...@apache.org> on 2008/03/03 19:04:51 UTC

[jira] Resolved: (AXIS2-1879) Deploying services on the client side

     [ https://issues.apache.org/jira/browse/AXIS2-1879?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Davanum Srinivas resolved AXIS2-1879.
-------------------------------------

    Resolution: Won't Fix

> Deploying services on the client side
> -------------------------------------
>
>                 Key: AXIS2-1879
>                 URL: https://issues.apache.org/jira/browse/AXIS2-1879
>             Project: Axis 2.0 (Axis2)
>          Issue Type: New Feature
>          Components: kernel
>    Affects Versions: 1.2
>         Environment: All
>            Reporter: Sandeep Bhojwani
>            Assignee: Deepal Jayasinghe
>         Attachments: clientside-deployment-axis2-1.1.zip
>
>
> Purpose of the modification
> --------------------------------
> Axis2 provides a nice way of deploying services on the server side but no good way of doing the same on the client side. All the service deployment features provided by Axis2 on the server side can be very easily extended to client side. Currently on the server side you can package a service as a .aar file and deploy it. On the client side, however, you need to pass the wsdl url to the ServiceClient to send a message to a service.  
> The proposed modification uses the same deployment features that are available on the server side for application on the client side. So with the proposed modification you can deploy a .aar file for use on the client side. Infact you can take the same .aar file from your server and put it on your client. This is very useful in the case where you are writing intermediaries and you are not using ServiceClient but instead calling the AxisEngine directly. 
> The change is very minimal and has no impact on existing code. 
> Details of the Modification
> --------------------------------
> When a service is loaded by Axis2 it makes an assumption that it needs to be loaded as server side. The idea is to not make that assumption and let the user specify via a parameter in the axis config file how the Engine should use the service. 
> Deployment Engine will look for this config parameter("isclientside") and set server side to true or false based on that.
> Here's the config parameter..
> <!-- Added by Sandeep Bhojwani(sandeep_bhojwani@yahoo.com), Trailside Systems.
>     isclientside is used to indicate whether the services/wsdls deployed are to be
>     used on the client side. If client side is set to true then a wsdl that declares a service
>     of type in-out will be interpreted as out-in because that's how the client will have to treat it.
>     The core axis Engine supports both client and server message flows. The Engine only needs to know
>     whether the service is to be treated as client side or server side.
>     -->
>     <parameter name="isclientside" locked="false">false</parameter> 	  
> Here's the code snippet that demonstrates the change that can be made to  DeploymentEngine code..
> ...
> ...  
> AxisService axisService = null;
> InputStream wsdlStream = serviceClassLoader.getResourceAsStream(metainf + "/service.wsdl");
> if (wsdlStream == null) 
> {
> wsdlStream = serviceClassLoader.getResourceAsStream(metainf + "/" + serviceName + ".wsdl");
> }
> if (wsdlStream != null)
> {
> WSDL11ToAxisServiceBuilder wsdl2AxisServiceBuilder = new WSDL11ToAxisServiceBuilder(wsdlStream, null, null);
> /* TODO: Added by Sandeep Bhojwani(sandeep_bhojwani@yahoo.com), Trailside Systems.
> * check if service is to be loaded for use on client side or server side
> */
> wsdl2AxisServiceBuilder.setServerSide(!isClientSide);
> axisService = wsdl2AxisServiceBuilder.populateService();
> ...
> ...
> The big difference in treating a service on the client as opposed to server is in the MEP(Message Exchange Pattern). A wsdl with an in-out service when loaded on the server will create an In-OUT Operation whereas on the client side it will create a OUT-IN operation. A rversal of MEP. IN becomes OUT and OUT becomes IN.
> I have all the required modifications to 1.1 in a zip file.   

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org