You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by Frank Zammetti <fz...@hotmail.com> on 2004/06/03 21:46:23 UTC

Struts Web Services Enablement Project

Hello devs!  This is my first time posting here, and my first attempt at 
contributing to an Apache project.  I hope I'm going about it properly! :)

In short, I have a little project going with the stated goal of allowing a 
Struts developer to expose any existing business logic, as implemented in 
Struts Actions and their subordinate helper classes, as Web Services, and do 
this with NO changes required to any existing application code, and as 
little change to Struts itself as possible.  Simplicity is the key to this!

Today I released a second version of this project to the user's mailing 
list, and after some feedback I think it's at a point where I'd like to make 
you all aware of it, and get some higher-level feedback.  It's certainly far 
from complete at this point, but I think even now it's in a useful form.

My hope is that eventually it will be good enough to be included in the base 
Struts distro, but that's obviously a long way off, if ever.

With all that in mind, please at your convenience visit 
http://www.omnytex.com/strutsws

There you will find some more detailed technical information and a download 
which contains everything you need, including a simple sample webapp 
demonstrating the whole mess.

I thank you in advance for any time you spend on this!

Frank W. Zammetti

_________________________________________________________________
Looking to buy a house? Get informed with the Home Buying Guide from MSN 
House & Home. http://coldwellbanker.msn.com/


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


Re: Struts Web Services Enablement Project

Posted by Duncan Mills <du...@oracle.com>.
Frank forgive me here, but playing Devils Advocate, if you have clean 
MVC separation then surely the last thing you want to do is to expose 
Actions as Web Services.
It is reasonable to want to expose Business Service Providers such as 
EJB, or TopLink beans as Web Services but that's up in the model layer, 
what's the point in pushing the access point down into the Controller code?

Or do you see here a solution for all those folks who've not followed 
best practice and have intermingled Controller functionality with 
Business logic..?

Regards

Duncan Mills
Senior Principal Product Manager
Oracle Application Development Tools



Frank Zammetti wrote:

> Hello devs!  This is my first time posting here, and my first attempt 
> at contributing to an Apache project.  I hope I'm going about it 
> properly! :)
>
> In short, I have a little project going with the stated goal of 
> allowing a Struts developer to expose any existing business logic, as 
> implemented in Struts Actions and their subordinate helper classes, as 
> Web Services, and do this with NO changes required to any existing 
> application code, and as little change to Struts itself as possible.  
> Simplicity is the key to this!
>
> Today I released a second version of this project to the user's 
> mailing list, and after some feedback I think it's at a point where 
> I'd like to make you all aware of it, and get some higher-level 
> feedback.  It's certainly far from complete at this point, but I think 
> even now it's in a useful form.
>
> My hope is that eventually it will be good enough to be included in 
> the base Struts distro, but that's obviously a long way off, if ever.
>
> With all that in mind, please at your convenience visit 
> http://www.omnytex.com/strutsws
>
> There you will find some more detailed technical information and a 
> download which contains everything you need, including a simple sample 
> webapp demonstrating the whole mess.
>
> I thank you in advance for any time you spend on this!
>
> Frank W. Zammetti
>
> _________________________________________________________________
> Looking to buy a house? Get informed with the Home Buying Guide from 
> MSN House & Home. http://coldwellbanker.msn.com/
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
> For additional commands, e-mail: dev-help@struts.apache.org
>

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


RE: Struts Web Services Enablement Project

Posted by Andrew Hill <an...@gridnode.com>.
I can see a use for this in what Im doing! :-)

Im busy writing (in what little spare time I have!) a multiplayer strategy
game - using Struts of course, and while its cool having it go through a
browser interface, being able to do a richer UI in Swing (or whatever) for
those players willing to download such a thing (or even write one
themselves!) would be cool, and of course web services would be the way to
do it. If I could just dump in your request processor and immediately have
the web services running, that would be very nice indeed. In this case the
'use cases' of the actions would mostly match what Id like a richer client
to be able to do too.

As for what Ted said about using the chain, that would be a good thing to
follow up. My apps generally tend to have a customised request processor and
Struts 1.1 doesnt let you have multiple RPs, but using the chain will make
it a lot easier to integrate 3rd party request processing logics without
having to do too much extra work. :-)

btw: does your thing generate the wsdl files?
That would be really neat. I could whack em straight into Axis and bang up a
swing client extra fast then!

-----Original Message-----
From: Ted Husted [mailto:husted@apache.org]
Sent: Friday, 4 June 2004 19:57
To: Struts Developers List
Subject: Re: Struts Web Services Enablement Project


Yes, you did the right thing. You cobbled up enough code to prove the
concept and brought it out to show before it was too late to go another way.
:)

I've an interest in Web Services, so I'll be taking a closer look at this.
But here are some superficial points:

* Please consider putting the code under Apache License 2.0
<http://apache.org/licenses/>. I

* It's true that, in practice, the Struts Actions create a coarsely-grained
business API. But, attaching the moniker "business logic" to Actions will
start theological discussions. It's true that if an Action is factored
properly, it would be easy to recreate as some web service class. It's also
true that exposing existing Actions as Web Services, would be valuable to a
lot of people. So, keep the idea but drop references to "business logic"
from the documentation. An Action is what an Action is :)

* Working at the RequestProcessor level seems like the right approach to me,
but you'll want to take a look at the Struts-Chain RequestProcessor in
Contrib. It's based on the Commons Chain package and is slated to become the
default RequestProcessor in the Struts 1.3.x series.

  * http://cvs.apache.org/viewcvs.cgi/jakarta-struts/contrib/struts-chain/

  * http://cvs.apache.org/viewcvs.cgi/jakarta-commons-sandbox/chain/

I'll take a closer look at the code tonight, but wanted to get these
preliminary points off to you.

-Ted.


On Thu, 03 Jun 2004 15:46:23 -0400, Frank Zammetti wrote:
> Hello devs!  This is my first time posting here, and my first
> attempt at contributing to an Apache project.  I hope I'm going
> about it properly! :)
>
> In short, I have a little project going with the stated goal of
> allowing a Struts developer to expose any existing business logic,
> as implemented in Struts Actions and their subordinate helper
> classes, as Web Services, and do this with NO changes required to
> any existing application code, and as little change to Struts
> itself as possible.  Simplicity is the key to this!
>
> Today I released a second version of this project to the user's
> mailing list, and after some feedback I think it's at a point where
> I'd like to make you all aware of it, and get some higher-level
> feedback.  It's certainly far from complete at this point, but I
> think even now it's in a useful form.
>
> My hope is that eventually it will be good enough to be included in
> the base Struts distro, but that's obviously a long way off, if
> ever.
>
> With all that in mind, please at your convenience visit
> http://www.omnytex.com/strutsws
>
>
> There you will find some more detailed technical information and a
> download which contains everything you need, including a simple
> sample webapp demonstrating the whole mess.
>
> I thank you in advance for any time you spend on this!
>
>
> Frank W. Zammetti



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



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


Re: Struts Web Services Enablement Project

Posted by Ted Husted <hu...@apache.org>.
Yes, you did the right thing. You cobbled up enough code to prove the concept and brought it out to show before it was too late to go another way. :)

I've an interest in Web Services, so I'll be taking a closer look at this. But here are some superficial points: 

* Please consider putting the code under Apache License 2.0 <http://apache.org/licenses/>. I

* It's true that, in practice, the Struts Actions create a coarsely-grained business API. But, attaching the moniker "business logic" to Actions will start theological discussions. It's true that if an Action is factored properly, it would be easy to recreate as some web service class. It's also true that exposing existing Actions as Web Services, would be valuable to a lot of people. So, keep the idea but drop references to "business logic" from the documentation. An Action is what an Action is :) 

* Working at the RequestProcessor level seems like the right approach to me, but you'll want to take a look at the Struts-Chain RequestProcessor in Contrib. It's based on the Commons Chain package and is slated to become the default RequestProcessor in the Struts 1.3.x series. 

  * http://cvs.apache.org/viewcvs.cgi/jakarta-struts/contrib/struts-chain/

  * http://cvs.apache.org/viewcvs.cgi/jakarta-commons-sandbox/chain/

I'll take a closer look at the code tonight, but wanted to get these preliminary points off to you.

-Ted.


On Thu, 03 Jun 2004 15:46:23 -0400, Frank Zammetti wrote:
> Hello devs!  This is my first time posting here, and my first
> attempt at contributing to an Apache project.  I hope I'm going
> about it properly! :)
>
> In short, I have a little project going with the stated goal of
> allowing a Struts developer to expose any existing business logic,
> as implemented in Struts Actions and their subordinate helper
> classes, as Web Services, and do this with NO changes required to
> any existing application code, and as little change to Struts
> itself as possible.  Simplicity is the key to this!
>
> Today I released a second version of this project to the user's
> mailing list, and after some feedback I think it's at a point where
> I'd like to make you all aware of it, and get some higher-level
> feedback.  It's certainly far from complete at this point, but I
> think even now it's in a useful form.
>
> My hope is that eventually it will be good enough to be included in
> the base Struts distro, but that's obviously a long way off, if
> ever.
>
> With all that in mind, please at your convenience visit
> http://www.omnytex.com/strutsws
>
>
> There you will find some more detailed technical information and a
> download which contains everything you need, including a simple
> sample webapp demonstrating the whole mess.
>
> I thank you in advance for any time you spend on this!
>
>
> Frank W. Zammetti



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