[
https://issues.apache.org/jira/browse/AXIS2-1879?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Davanum Srinivas updated AXIS2-1879:
------------------------------------
Assignee: Deepal Jayasinghe
> 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
> Assigned To: 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([EMAIL PROTECTED]), 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([EMAIL PROTECTED]), 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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]