Point here, if I understood correctly, is that frank is implementing
The serverside part. So if you or I or anyone else would use his
package,
It will be for enabling an existing struts application to be called
As webservice.

That's spot-on. I'd say if you were developing new services, or really doing more advanced Web Service-type things, this package probably isn't the right fit there. But if your in a situation like I was a short time ago, where you have a big, exsiting Struts application, and someone wanted to access portions of it, this I think can be a quick and easy way to do that.


Specifically in my case I had another web application written by another group that wanted to access a list of items from my application. Since my application is fairly well-written, I had beans that generated the list independant of the Actions, and I could have gone through the exercise of exposing those as as service. But, I started thinking, wait, I have this whole server infrastructure, including in my case externalized security, and wouldn't it be nice if I could plug into that without touching any existing code? Fortunately, I had done basically what this project is about three years ago in a home-grown framework, so it was trivial to port it to Struts, and it worked like a charm.

It's cases like this where I think this package could find some use, not in delivering oodles of new Web Services like many companies are doing. There are far better options for that.

AFAIK, ultimately in an XML message everything will be reduced to a
String.
If u need for some reason to map it to a specific type, have a look at
The org.commons.beanutils.ConvertingWrapDynaBean class and see if it can
help

Yes, that's absolutely correct. However, SOAP, as far as I know it, allows for more complex types to be encoded. I assume it does some sort of serialization on it and stuffs the resultant bytestream into a CDATA element, or something of that nature. On the server side, that stuff gets reconstituted and you wind up having your objects to work with, like BigDecimals, HashMaps or whatever else SOAP allows for. My code won't handle such things at this point, and fundamentally I'm not sure it ever could, or even that it should. When you consider that you are submitting your SOAP request to something that was meant to service HTML form submissions, which only deal in Strings, it makes sense that this would be a limitation of my approach, and it further makes sense that it's really not a limitation per se.


Dunno what the client would to though......

Regars
        marco





In any case, you've given me some things to go Google now :)

Frank

>Pedro Salgado
>
>
> > Ah, I see.  I'm not familiar enough with filters, but I had always
> > thought  they were on the input side only.  If that belief is wrong,
> > then it  certainly becomes an option.
> >
> > I think at some point to make this really worth anything I'll have
to
> > break  my "transparency rule" to some extent.  I do like the idea of
> > generating the  output with a JSP because it's just so easy!  A
little
> > bit of background...  I actually implemented this same thing in a
custom
> > framework we were  previously using in-house.  In that application I
> > actually do write out the  output in servlets, there is never a
forward
> > to a JSP or anything else  typically in the "view" layer.
> >  This works
> > just fine, but when I started  doing it in Struts it ocurred to me
that
> > I could really simplify things by  not taking that approach and
instead
> > let the actual XML generation be done  in a JSP.  That also removed
the
> > one change that was required under the old  framework: you did have
to
> > add two function calls to the controller servlets  that were exposed
as
> > services.  Not a big change, but I wanted to avoid code  changes
> > entirely here.
> >
> > At this point my belief is that probably the best way to handle this
is
> > to  have an element added to the Action mappings in
Struts-Config.xml
> > that  specifies the target JSP for a Web Service request.  The
default
> > woudl be  the "generic" template I put together, although a bit more
> > flexible as time  goes on.  But, the point is that you could then
define
> > an XML template in  essence for every Action you wanted to expose as
a
> > service.  That would  allow for things I probably can't do
> > automatically.  I'd also write a taglib  to make life easier
(although I
> > might not have to... the current Struts  taglibs might be more than
> > sufficient on their own).
> >
> > That would of course require a change to the DTD for
Struts-Config.xml,
> > so  in the mean time what I think I'm going to do is add an optional
> > config file  thatwould be parsed via a plug-in at app startup that
would
> > contain these  extra mappings.  Fairly trivial exercise, and it
leaves
> > it completely  optional, no changes to Struts required.
> >
> > Also, I realized on the drive in that there's no need to put the
> > parameters  as a query string as I'm doing... I can just put the
parsed
> > parameters  directly into the request object as an attribute.  Since
> > only the second  pass of a Web Service request would know or care
about
> > that object, it will  basically just remove some code and simplify
> > things a bit.
> >
> > I'm hoping to get these thnigs done today and release a .02 package
> > before I  leave work today (it's nice when your development server
is
> > down and you  can't do any real work until the techs rebuild it!)...
I
> > also hope to remove  the required actionMappingPath element in the
XML
> > request... I haven't found  a way to get at the requested pat
> > information in RequestProcessor yet, but  it seems like something
that
> > should be available at that point, so I  probably just have to do
some
> > digging.
> >
> > What is AOP by the way?  Millions of acronyms out there, I know
> > thousands of  them, but not that one :)
> >
> > Thanks very much for the feedback!
> >
> > Frank
> >
> >>From: "Marco Mistroni" <[EMAIL PROTECTED]>
> >>Reply-To: "Struts Users Mailing List" <[EMAIL PROTECTED]>
> >>To: "'Struts Users Mailing List'" <[EMAIL PROTECTED]>
> >>Subject: RE: Strus Web Service Enablement
> >>Date: Thu, 3 Jun 2004 14:25:47 +0100
> >>
> >>Hi,
> >>   Well, main issue here is that if you want everything to be
> >>transparent
> >>To the user (including the forward) then whole stuff has to be done
so
> >> that
> >>Something 'intercepts' the response when XML is contained in it (if
I
> >> can explain myself correctly)
> >>
> >>In other way, to do same steps that you have already done with
> >>RequestProcessor
> >>Not being familiar with struts internal (other than action
&actionform)
> >> I can't really say where to modify things...
> >>
> >>Another way would be, for each CustomAction written, write an
> >>CustomActionXml that extends CustomAction. This CustomActionXml will
Be
> >> invoked whenever the path is for CustomAction AND the request is in
> >> XML. The logic will be done in the original CustomAction,
difference
> >> being in the fact that CustomActionXml instead of redirecting to
the
> >> 'original' forward of CustomAction, writes the response to
outputWriter
> >> But this gets cumbersome..
> >>
> >>I would go for doing with response exactly what u r doing with
> >> request.. Though right now I have no clue on how to do it...maybe u
or
> >> some struts expert which knows inner logic of struts knows?
> >>
> >>Will AOP help in any way here?
> >>
> >>
> >>Regards
> >>   marco
> >>
> >>
> >>
> >>
> >>Extends
> >>
> >>-----Original Message-----
> >>From: Frank Zammetti [mailto:[EMAIL PROTECTED]
> >>Sent: 03 June 2004 13:33
> >>To: [EMAIL PROTECTED]
> >>Subject: RE: Strus Web Service Enablement
> >>
> >>I have to be honest and say I've never used a filter except for one
> >> situation to do security on the input side, a very basic
application.
> >> How
> >>would you envision it being used for the output?
> >>
> >>
> >> >From: "Marco Mistroni" <[EMAIL PROTECTED]>
> >> >Reply-To: "Struts Users Mailing List" <[EMAIL PROTECTED]>
> >> >To: "'Struts Users Mailing List'" <[EMAIL PROTECTED]>
> >> >Subject: RE: Strus Web Service Enablement
> >> >Date: Thu, 3 Jun 2004 10:15:43 +0100
> >> >
> >> >Hi,
> >> >      My 2 cents.... I think that is a great idea!!!!
> >> >
> >> >Do u think that using a filter for the response will help?
> >> >
> >> >Last year I did something similar (wrote a Struts-based webapp
> >> >That I was talking to using J2ME and KSOAP..but all I was able
> >> >To do was to extend existing action and dump the generated XML
> >> >Into the response.getWriter().write()... I was using axis btw for
XML
> >> stuff on the serverside)
> >> >
> >> >Regards
> >> >      marco
> >> >
> >> >
> >> >
> >> >-----Original Message-----
> >> >From: Frank Zammetti [mailto:[EMAIL PROTECTED]
> >> >Sent: 02 June 2004 21:29
> >> >To: [EMAIL PROTECTED]
> >> >Subject: RFC: Strus Web Service Enablement
> >> >
> >> >Hello all... I wanted to post this here and get any comments that
> >>people
> >> >had
> >> >so I could decide where to go with it...
> >> >
> >> >For the past two days I've been working on a mechanism that would
> >> allow you
> >> >to expose existing Struts-based business logic as Web Services
> >> without changing any existing code.  What I offer here is a first
> >> approximation of
> >> >that idea.
> >> >
> >> >If you might be interested in this, you can download the first
> >>iteration
> >> >of
> >> >the project at http://www.omnytex.com/wst.zip
> >> >
> >> >This archive is a sample webapp in exploded format.  Just unzip it
to
> >> your
> >> >webapps directory of your chosen app server and you should be good
to
> >> go.
> >> >I've only tried it on Tomcat however, so anything else is unknown.
> >> >
> >> >In a nutshell, what I've done is written a custom subclass of
> >> >RequestProcessor.  This version will recognize a SOAP-based Web
> >> Service request, "unroll" the request, and hand it off to a
specified
> >> Action. As
> >> >far as the Action is concerned, it looks just like a regular HTTP
> >> form submission, so it processes same as before.  Note that the
> >> request is forwarded back through ActionServlet, so anything you do
> >> should still work.
> >> >The RequestProcessor then overrides the destination ActionForward
> >> that the
> >> >Action returns, and instead sends it to a special JSP, which
renders
> >>the
> >> >
> >> >response XML.  The response type is set properly, and the
generated
> >> XML is
> >> >returned.  The XML it generates simply dumps all members of the
> >> ActionForm,
> >> >so it's not very smart right now, but as I said, this is a first
> >> approximation of the idea.
> >> >
> >> >So, in the end, you should be able to expose any existing Actions
as
> >>Web
> >> >
> >> >Services without changing them.  Everything you need is included,
> >>except
> >> >for
> >> >a JDK, but I assume you have that already (!), including a
> >> dirt-simple test
> >> >client.  It's not a true SOAP client, but it gets the job done.
> >> >
> >> >Once you unzip the archive, I suggest reading the readme.txt file
in
> >>the
> >> >
> >> >/source directory.  This goes into a bit more detail on
everything,
> >> as well
> >> >as explaining how to use this in your own application.  I should
also
> >> note
> >> >that this RequestProcessor is transparent to non-Web Service
> >> requests, i.e.,
> >> >you can use it in your existing apps without changing anything
> >> whether you
> >> >expose anything as a service or not.
> >> >
> >> >I thank anyone in advance that checks this out.  Please send me
any
> >> comments
> >> >or suggestions you may have either to [EMAIL PROTECTED] or
just
> >>post
> >> >
> >> >them here.
> >> >
> >> >My hope is that given some time to refine this it will be tight
> >> enough and
> >> >useful enough that maybe I can present it to the developer list
for
> >> possible
> >> >inclusion in the base Struts distro.  That's of course a ways off,
if
> >>it
> >> >
> >> >ever reaches that point, but it's a start I think.
> >> >
> >> >Good day to all!
> >> >
> >> >Frank
> >> >
> >> >_________________________________________________________________
> >> Looking to buy a house? Get informed with the Home Buying Guide
from
> >>MSN
> >> >
> >> >House & Home. http://coldwellbanker.msn.com/
> >> >
> >> >
> >>
>---------------------------------------------------------------------
> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> >For additional commands, e-mail: [EMAIL PROTECTED]
> >> >
> >> >
> >>
>---------------------------------------------------------------------
> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> >For additional commands, e-mail: [EMAIL PROTECTED]
> >> >
> >>
> >>_________________________________________________________________
Check
> >> out the coupons and bargains on MSN Offers!
> >>http://youroffers.msn.com
> >>
> >>
>
>>---------------------------------------------------------------------
> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >>For additional commands, e-mail: [EMAIL PROTECTED]
> >>
> >>
>
>>---------------------------------------------------------------------
> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >>For additional commands, e-mail: [EMAIL PROTECTED]
> >>
> >
> > _________________________________________________________________
> > Looking to buy a house? Get informed with the Home Buying Guide from
MSN
> >  House & Home. http://coldwellbanker.msn.com/
> >
> >
> >
--------------------------------------------------------------------- To
> > unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]
>

_________________________________________________________________
Looking to buy a house? Get informed with the Home Buying Guide from MSN

House & Home. http://coldwellbanker.msn.com/


--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]


--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]


_________________________________________________________________ Check out the coupons and bargains on MSN Offers! http://youroffers.msn.com


--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to