In the RPC case, if you specify "*", you still shouldn't have public methods in your 
class which you don't want exported - the failure case here is that people can 
remotely call dangerous/inappropriate code.  I'm just saying that the same idea should 
apply for MSG services with "*", except that we should notice the non-matching methods 
right away.

I think the question comes down to this : which is more confusing/difficult to the 
user?  To specify "all methods should be exported" and then have deployment silently 
ignore non-matching methods for message services, or to get a deployment failure which 
makes it very clear that you've allowed more than is valid in your class signature.  
To me, it seems like the former is more opaque and error-prone - to you, it seems like 
the latter is annoying.  Maybe we should [VOTE]?

No matter which way this goes, we need to explain VERY CLEARLY in the documentation 
and the FAQ how this works.

Incidentally, I think your case below reminds us that we need two further abilities in 
WSDD:  1) specify an interface which contains all the allowed methods in the 
implementation class, and 2) a "no-superclasses" option.

--Glen

> -----Original Message-----
> From: Rick Rineholt [mailto:[EMAIL PROTECTED]]
> Sent: Thursday, September 26, 2002 8:58 AM
> To: [EMAIL PROTECTED]
> Subject: RE: cvs commit: xml-axis/java/test/MSGDispatch 
> TestService.java
> 
> 
> 
> Why make it difficult on users!  If I have  on RPC case "*" I'm done
> because all public methods ARE valid signature. If in messge 
> provider I
> specify "*" then all methods that make sense  are valid too.
> 
> In addition  if I need to inherit from a class that does have 
> not have a
> "valid" signature and I specify "*" I get an error that this is not
> a valid signature!!!  NO WAY.
> 
> Rick Rineholt
> "The truth is out there...  All you need is a better search engine!"
> 
> [EMAIL PROTECTED]
> 
> 
> 
> Glen Daniels <[EMAIL PROTECTED]> on 09/26/2002 08:41:03 AM
> 
> Please respond to [EMAIL PROTECTED]
> 
> To:    "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]>
> cc:
> Subject:    RE: cvs commit: xml-axis/java/test/MSGDispatch 
> TestService.java
> 
> 
> 
> 
> We're now changing the semantics of what "allowedMethods='*'" 
> means - for
> RPC/Doc services, it literally means all public methods should be web
> methods.  Now for Message service it means "just the ones 
> that match these
> signatures".  I think that's confusing.  ("why is it saying 'no such
> method'?")
> 
> I'm very close to -1 on it.  Why is this a good idea instead of having
> people just specify the legal methods?
> 
> --Glen
> 
> > -----Original Message-----
> > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
> > Sent: Thursday, September 26, 2002 8:21 AM
> > To: [EMAIL PROTECTED]
> > Subject: cvs commit: xml-axis/java/test/MSGDispatch TestService.java
> >
> >
> > dug         2002/09/26 05:20:39
> >
> >   Modified:    java/test/MSGDispatch TestService.java
> >   Log:
> >   Expand the test a little to make sure we don't restrict too much.
> >   From the comment in the test:
> >   Adding these dummy methods to make sure that when we deploy this
> >   service using "allowedMethods="*" that we don't barf on them.
> >   This will ensure that people can take classes that have public
> >   methods (some available thru Axis and some not) and still be able
> >   to deploy them.  (We used to throw exceptions about it)
> >
> >   Revision  Changes    Path
> >   1.2       +9 -0      
> xml-axis/java/test/MSGDispatch/TestService.java
> >
> >   Index: TestService.java
> >   
> ===================================================================
> >   RCS file:
> > /home/cvs/xml-axis/java/test/MSGDispatch/TestService.java,v
> >   retrieving revision 1.1
> >   retrieving revision 1.2
> >   diff -u -r1.1 -r1.2
> >   --- TestService.java      24 Sep 2002 20:45:20 -0000    1.1
> >   +++ TestService.java      26 Sep 2002 12:20:39 -0000    1.2
> >   @@ -75,6 +75,15 @@
> >     * @author Glen Daniels ([EMAIL PROTECTED])
> >     */
> >    public class TestService {
> >   +    // Adding these dummy methods to make sure that when
> > we deploy this
> >   +    // service using "allowedMethods="*" that we don't
> > barf on them.
> >   +    // This will ensure that people can take classes that
> > have public
> >   +    // methods (some available thru Axis and some not) and
> > still be able
> >   +    // to deploy them.  (We used to throw exceptions about it)
> >   +    public void testBody(int t) {}
> >   +    public void testElement(int t) {}
> >   +    public void testEnvelope(int t) {}
> >   +
> >        public SOAPBodyElement [] testBody(SOAPBodyElement [] bodies)
> >                throws Exception {
> >
> >
> >
> >
> >
> 
> 
> 
> 

Reply via email to