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 { > > > > > > > > > > > > > >