Loading ...
Sorry, an error occurred while loading the content.

RE: [soaplite] General Question

Expand Messages
  • David Mullens
    Thanks again for all your help! I think I see how I can do it now! You ve helped a lot. Now on to authentication....... Peace, Dave. ... From:
    Message 1 of 5 , Aug 1, 2001
    • 0 Attachment
      Thanks again for all your help! I think I see how I can do it now! You've
      helped a lot.

      Now on to authentication.......

      Peace,

      Dave.

      -----Original Message-----
      From: soaplite@yahoogroups.com [mailto:soaplite@yahoogroups.com]
      Sent: Wednesday, August 01, 2001 12:32 PM
      To: soaplite@yahoogroups.com
      Subject: RE: [soaplite] General Question
      Importance: Low


      Hi, David!

      >> Thanks for the help... I'm having trouble with the statement:
      >>
      >> die "No such method...\n" unless exists $%methods_map{$method};
      should be:

      die "No such method...\n" unless exists $methods_map{$method};

      I didn't test it, just typed out of my head.

      >> Since I'm new to perl, I'm not sure what the problem is. It works
      I advise you to stay with more simple case (access from your client
      only classes/methods you really have on server) and then move toward
      more complex case you discussed.

      Best wishes, Paul.

      --- David Mullens <damullens@...> wrote:
      >> Hi,
      >>
      >> Thanks for the help... I'm having trouble with the statement:
      >>
      >> die "No such method...\n" unless exists $%methods_map{$method};
      >>
      >> It seems to be $%methods_map{$method} that is causing the trouble.
      >> I get
      >> the error: Bareword found where operator expected at
      >> ./MainInterface.cgi
      >> line 21, near "$%methods_map"
      >> (Missing operator before methods_map?)
      >>
      >> Since I'm new to perl, I'm not sure what the problem is. It works
      >> fine if I
      >> put it in the die "No.....$%methods_map{$method}"..... statement.
      >>
      >> Thanks for the help.
      >>
      >> DAve.
      >>
      >>
      >>
      >> -----Original Message-----
      >> From: soaplite@yahoogroups.com [mailto:soaplite@yahoogroups.com]
      >> Sent: Tuesday, July 31, 2001 8:44 PM
      >> To: soaplite@yahoogroups.com
      >> Subject: Re: [soaplite] General Question
      >> Importance: Low
      >>
      >>
      >> Hi, David!
      >>
      >> >> I'm wanting to have several small scripts (modules) called from
      >> a
      >> >> large main
      >> it IS definitely possible. Yet I'm not sure that is right approach.
      >> Combination of URI and method will tell you what module/method to
      >> use. You want to fix URI and map method to different combinations
      >> of
      >> module/method on server side. Doable, but I'd rather create one
      >> AUTOLOAD function and build it dynamically from hash:
      >>
      >> use SOAP::Transport::HTTP;
      >> SOAP::Transport::HTTP::CGI
      >> -> dispatch_to('MainInterface')
      >> -> handle;
      >>
      >> package MainInterface;
      >>
      >> use vars qw($AUTOLOAD);
      >>
      >> my %methods_map = (
      >> method1 => ['package', 'method'],
      >> method2 => ['package', 'method1'],
      >> );
      >>
      >> sub AUTOLOAD {
      >> my $method = substr($AUTOLOAD, rindex($AUTOLOAD, '::') + 2);
      >> return if $method eq 'DESTROY';
      >>
      >> die "No such method...\n" unless exists $%methods_map{$method};
      >> my($package, $method) = @{$methods_map{$method}};
      >> eval "require $package" or die;
      >> # little trick that allows you to implement
      >> # method (OO) rather than function calls
      >> $method = "${package}::$method";
      >> shift->$method(@_);
      >> # don't forget that first parameter is class/object
      >> # shift it if you don't need that
      >> }
      >>
      >> All other modules can be implemented in usual fashion.
      >>
      >> >> In the Methods module, I would have
      >> >>
      >> >> use SOAP::Transport::HTTP;
      >> >> SOAP::Transport::HTTP::CGI
      >> >> -> dispatch_to('Modules')
      >> >> -> handle;
      >> you don't need that in Methods module, only usual module code.
      >>
      >> >> Is this possible? Right now I'm getting an access denied.
      >> Access denien where? Could you provide request/response payload if
      >> you still have problems? Hope it helps.
      >>
      >> Best wishes, Paul.
      >>
      >> --- David Mullens <damullens@...> wrote:
      >> >> Hi,
      >> >>
      >> >> I'm wanting to have several small scripts (modules) called from
      >> a
      >> >> large main
      >> >> script. The main script would basically have:
      >> >>
      >> >>
      >> >> use SOAP::Transport::HTTP;
      >> >> SOAP::Transport::HTTP::CGI
      >> >> -> dispatch_to('MainInterface')
      >> >> -> handle;
      >> >>
      >> >> package MainInterface;
      >> >>
      >> >> use Methods;
      >> >>
      >> >> sub methodName {
      >> >> &Methods::method_Name;
      >> >> }
      >> >>
      >> >>
      >> >>
      >> >> In the Methods module, I would have
      >> >>
      >> >> use SOAP::Transport::HTTP;
      >> >> SOAP::Transport::HTTP::CGI
      >> >> -> dispatch_to('Modules')
      >> >> -> handle;
      >> >>
      >> >> sub method_Name {
      >> >> # some type of logic here
      >> >>
      >> >> return $whatever;
      >> >> }
      >> >>
      >> >>
      >> >> For each subroutine in the main script, there would be a module.
      >> >>
      >> >> The reason why we are wanting to implement SOAP this way, is so
      >> we
      >> >> can
      >> >> setup the endpoint url in a database (or java properties file)
      >> and
      >> >> the
      >> >> person programming the client won't have to worry about
      >> different
      >> >> endpoints,
      >> >> only the method to call. We can create new modules, then enter
      >> >> them in our
      >> >> main endpoint script. The main script will take care of the
      >> call.
      >> >>
      >> >> When ever something needs to be updated, we don't have to touch
      >> the
      >> >> main
      >> >> endpoint script at all. We can edit whatever module we want.
      >> >> There is a
      >> >> chance that we will have 200 or so modules when all is
      >> finished.
      >> >>
      >> >> Is this possible? Right now I'm getting an access denied.
      >> >>
      >> >> Is this the best way to implement things? We really don't want
      >> one
      >> >> script
      >> >> with 200 subroutines (at least with all the logic) and we don't
      >> >> want one
      >> >> script for each endpoint. We thought if we implement it with
      >> one
      >> >> main
      >> >> script calling different modules, it would be easier to
      >> maintain.
      >> >>
      >> >>
      >> >>
      >> >> Thanks for any suggestions,
      >> >>
      >> >> Dave.
      >> >>
      >> >>
      >> >> ------------------------ Yahoo! Groups Sponsor
      >> >>
      >> >> To unsubscribe from this group, send an email to:
      >> >> soaplite-unsubscribe@yahoogroups.com
      >> >>
      >> >>
      >> >>
      >> >> Your use of Yahoo! Groups is subject to
      >> >> http://docs.yahoo.com/info/terms/
      >> >>
      >> >>
      >>
      >>
      >> __________________________________________________
      >> Do You Yahoo!?
      >> Make international calls for as low as $.04/minute with Yahoo!
      >> Messenger
      >> http://phonecard.yahoo.com/
      >>
      >>
      >> To unsubscribe from this group, send an email to:
      >> soaplite-unsubscribe@yahoogroups.com
      >>
      >>
      >>
      >> Your use of Yahoo! Groups is subject to
      >> http://docs.yahoo.com/info/terms/
      >>
      >>
      >>
      >>
      >>
      === message truncated ===


      __________________________________________________
      Do You Yahoo!?
      Make international calls for as low as $.04/minute with Yahoo! Messenger
      http://phonecard.yahoo.com/


      To unsubscribe from this group, send an email to:
      soaplite-unsubscribe@yahoogroups.com



      Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
    Your message has been successfully submitted and would be delivered to recipients shortly.