axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "David Illsley (JIRA)" <j...@apache.org>
Subject [jira] Commented: (AXIS2-1879) Deploying services on the client side
Date Fri, 15 Dec 2006 23:17:21 GMT
    [ http://issues.apache.org/jira/browse/AXIS2-1879?page=comments#action_12458968 ] 
            
David Illsley commented on AXIS2-1879:
--------------------------------------

I'm sorry, I'm a little confused... how would client code use these 'client deployed' aars?

> Deploying services on the client side
> -------------------------------------
>
>                 Key: AXIS2-1879
>                 URL: http://issues.apache.org/jira/browse/AXIS2-1879
>             Project: Apache Axis 2.0 (Axis2)
>          Issue Type: New Feature
>          Components: kernel
>    Affects Versions: 1.1
>         Environment: All
>            Reporter: Sandeep Bhojwani
>         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.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

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


Mime
View raw message