cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marcus Crafter <craft...@fztig938.bank.dresdner.net>
Subject Re: Proposal: Serving SOAP from Cocoon
Date Mon, 09 Sep 2002 17:55:53 GMT
Hi All,

	Have just checked everything into HEAD. If there's any problems
	please let me know and I'll fix them immediately.
	
	Cheers,
	
	Marcus
	
On Wed, Sep 04, 2002 at 10:19:05PM +0200, Giacomo Pati wrote:
> 
> Awesome work, Marcus, but can you post the ComposerReader?
> 
> Anybody else but me finds this should make its way into HEAD?
> 
> Giacomo
> 
> On Wed, 4 Sep 2002, Marcus Crafter wrote:
> 
> > Hi All,
> >
> > 	Hope all is well.
> >
> > 	After working through some interesting issues :) I've updated the
> > 	SOAP server for Cocoon that I've been working on in the following
> > 	areas:
> >
> > 	o SOAP server reader is now based on Axis, rather than Apache SOAP.
> >
> > 	o Helper abstract classes have been written allowing webservices
> > 	  to implement LogEnabled and Composable.
> >
> > 	o Several webservices are now included:
> >
> > 		o cache (allows you to remotely manipulate the Cocoon cache
> > 		         via soap, eg. clear it)
> >
> > 		o memory (allows you to view the total and free amount of
> > 		          memory in your Cocoon application, also allows you
> > 			  to remotely invoke the garbarge collector)
> >
> > 		o system (allows you to inspect the hardware your server
> > 		          is running on)
> >
> > 		o process (allows you to run a system process on the server
> > 		           and view the output. eg. ps, uptime, df, etc)
> >
> > 	o Included a small sample webapp which allows you to list the
> > 	  services currently deployed.
> >
> > 	o Moved entire source over to scratchpad, rather than core
> >
> > 	The source with libraries is now much larger than the original version,
> > 	I'll make it available via http somewhere and enter a bugzilla patch.
> >
> > 	Comments, suggestions more than welcome.
> >
> > 	Cheers,
> >
> > 	Marcus
> >
> > On Thu, Aug 15, 2002 at 04:30:09PM +0200, Marcus Crafter wrote:
> > > Hi All,
> > >
> > > 	Hope all is well.
> > >
> > > 	Over the past couple of days I've been working on adding the
> > > 	ability for a Cocoon application to serve SOAP requests.
> > >
> > > 	The motivation for this work came from:
> > >
> > > 	o The need to share business logic data with other projects, ie.
> > > 	  B2B communcation.
> > >
> > > 	o The desire to build an administration application and remotely query
> > > 	  a live system about its status.
> > >
> > > 	Instead of building a second server into our application (ie. RMI,
> > > 	CORBA, etc), I thought it might be better to use SOAP for this for
> > > 	several reasons, mainly since servlet based Cocoon applications are
> > > 	really HTTP oriented servers anyway.
> > >
> > > 	The code adding this functionality is in bugzilla, #11728.
> > >
> > > 	My hope is that this feature is of use for others too.
> > >
> > > 	Essentially, I took the RPCRouterServlet from the Apache SOAP
> > > 	project and ported it to Cocoon as a Reader, which in effect
> > > 	allows you to register SOAP services within your Cocoon app, and
> > > 	serve data to other clients.
> > >
> > > 	The reader can be configured in the sitemap as follows:
> > >
> > > <!-- Defines a SOAP RPC reader that will serve SOAP requests via HTTP-POST.
> > >
> > >      'managed-services' defines a list of Apache SOAP deployment descriptors
> > >      that will be automatically deployed at startup and undeployed at
> > >      shutdown of this reader.
> > >  -->
> > > <map:reader logger="sitemap.reader.soap-rpc" name="soap-rpc"
> > >             src="org.apache.cocoon.reading.SoapRPCReader">
> > >  <managed-services>
> > >   <descriptor src="resource://org/apache/cocoon/components/soap/services/memory/DeploymentDescriptor.xml"/>
> > >  </managed-services>
> > > </map:reader>
> > >
> > > 	Consult the javadocs for the full option set which includes the
> > > 	ability to set an EnvelopeEditorFactory, and custom SOAP server xml
> > > 	config file.
> > >
> > > 	The pipeline match is quite simple like most readers:
> > >
> > > <!-- Match SOAP RPC Router requests -->
> > > <map:match pattern="rpcrouter">
> > >  <map:read type="soap-rpc" mime-type="text/xml"/>
> > > </map:match>
> > >
> > > 	With these 2 sections added to your sitemap, you can then make
> > > 	HTTP-POST queries to the above pipeline to deploy, list, invoke or
> > > 	undeploy particular SOAP services from your Cocoon app. The
> > > 	ServiceManagerClient class that comes with Apache SOAP is quite
> > > 	useful for this.
> > >
> > > 	I've included an example service with my patch which allows a
> > > 	remote client to query the amount of free & total memory the remote
> > > 	Cocoon app currently has, and also allows a client to invoke the
> > > 	garbage collector on the remote application.
> > >
> > > 	For those interested have a look at the class and deployment
> > > 	descriptor in the o/a/c/components/soap/services/memory directory,
> > > 	and the	webapps/samples/soap directory.
> > >
> > > 	The SoapRPCReader also adds the Cocoon request, response, context
> > > 	and ComponentManager to the SOAP request context, which means it's
> > > 	possible for your SOAP services to access any avalon components you may
> > > 	have written, and also session data that may be relevant for the
> > > 	particular request. Have a look at the
> > > 	o/a/c/components/soap/services/template directory for an example of
> > > 	this.
> > >
> > > 	Normal SOAP services (ie. cocoon independant) can also be deployed,
> > > 	including those implemented in other languages via BSF support. The
> > > 	Apache SOAP documentation describes how this can be done.
> > >
> > > 	The reader itself requires the presence of the Apache SOAP jar
> > > 	(2.3.1 used during development), and the SUN activation and
> > > 	javamail jar. I've modified the build.xml so that the reader and
> > > 	associated services are only built if these libraries are present.
> > >
> > > 	I'm now looking at the various statistical & administration
> > > 	information we might like to provide from Cocoon, hopefully in
> > > 	combination with the instrumentation interfaces from Excalibur.
> > >
> > > 	Ok, so I hope its of use for more people that just me, if there's any
> > > 	questions, comments, feel free to ask.
> > >
> > > 	Cheers,
> > >
> > > 	Marcus
> > >
> > > --
> > >         .....
> > >      ,,$$$$$$$$$,      Marcus Crafter
> > >     ;$'      '$$$$:    Computer Systems Engineer
> > >     $:         $$$$:   ManageSoft GmbH
> > >      $       o_)$$$:   82-84 Mainzer Landstrasse
> > >      ;$,    _/\ &&:'   60327 Frankfurt Germany
> > >        '     /( &&&
> > >            \_&&&&'
> > >           &&&&.
> > >     &&&&&&&:
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
> > > For additional commands, email: cocoon-dev-help@xml.apache.org
> > >
> >
> >
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
> For additional commands, email: cocoon-dev-help@xml.apache.org
> 

-- 
        .....
     ,,$$$$$$$$$,      Marcus Crafter
    ;$'      '$$$$:    Computer Systems Engineer
    $:         $$$$:   ManageSoft GmbH
     $       o_)$$$:   82-84 Mainzer Landstrasse
     ;$,    _/\ &&:'   60327 Frankfurt Germany
       '     /( &&&
           \_&&&&'
          &&&&.
    &&&&&&&:

---------------------------------------------------------------------
To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
For additional commands, email: cocoon-dev-help@xml.apache.org


Mime
View raw message