I guess what Tuan wants is NOT writing the dispatching code.  The way you 
suggest is the same as asking the client to pass the account as a parameter 
to a generic service.  It makes no difference whether you pass via the URL 
or in the SOAP request.

Rgds, Ricky

At 08:12 AM 10/1/2002 -0400, you wrote:





>By default, if you use the URLMapper, yes axis will want the base URL to
>be:
>   http://host:port/axis/service/account
>but you can add on any parameters you want (as long as Axis isn't using it
>- like
>?wsdl).  So adding on "?account=12345" will be ok because it will be
>ignored by
>Axis.  Then, in your service you can just get the full URL (or get the
>Servlet Request
>object) and get the parameters (account) you want/need.
>-Dug
>
>
>"Tuan Le Viet" <[EMAIL PROTECTED]> on 10/01/2002 08:04:57 AM
>
>Please respond to [EMAIL PROTECTED]
>
>To:    <[EMAIL PROTECTED]>
>cc:
>Subject:    RE: Dynamic publishing
>
>
>
>Hi Dug,
>
>You got me here :-)
>Just one practical question, is that possible to have the URL looks like
>http://host:port/axis/services/account?number=12345 <
>http://host:port/axis/services/account?number=12345>  for my service. I
>thought Axis mandates Webservice URL to be
>http://host:port/axis/services/MyService. If it's possible how do i get the
>parameter.
>
>Thanx.
>
>Tuan
>
>       -----Original Message-----
>       From: Doug Davis [mailto:[EMAIL PROTECTED]]
>       Sent: 2002/10/01 ($B2P(B) 18:46
>       To: [EMAIL PROTECTED]
>       Cc:
>       Subject: RE: Dynamic publishing
>
>
>
>
>
>
>
>
>       You can do that - just make the account number part of the parameters
>of
>       the URL instead of the address part of the URL.
>       By that I mean, *don't* tell them the url is:
>         http://host:port/axis/services/account12345
>       tell them to use:
>         http://host:port/axis/services/account?number=12345
>       then you only need one instance of the service.
>       The client won't (or shouldn't) care what the total URL looks like,
>its
>       just a string so there's no extra work on their part.  All of the
>extra
>       work is on _your_ side - which isn't much - its just grabbing the
>"number"
>       parameter.
>       -Dug
>
>
>       "Tuan Le Viet" <[EMAIL PROTECTED]> on 10/01/2002 07:42:22 AM
>
>       Please respond to [EMAIL PROTECTED]
>
>       To:    <[EMAIL PROTECTED]>
>       cc:
>       Subject:    RE: Dynamic publishing
>
>
>
>       Hi Dug,
>
>       I totally agree with you that Axis should just worry about SOAP
>processing,
>       back-end system should deal with other issues.
>       My idea is that BankAccount user wouldn't have to pass account ID
>       everytime, it would be nicer if account ID will be supplied only once
>to
>       get the reference to Account object (in this case reference is just a
>URL),
>       then during the entire session, user wouldn't have to pass along
>account ID
>       whenever deposit/withdraw/checkBalance is invoked. Account object is
>just a
>       proxy to back-end system though, so it should be light-weight.
>
>       I reckon this approach is a bit more OO, and doesn't SOAP stand for
>Simple
>       OBJECT Access Protocol?
>
>       Cheers,
>
>       Tuan Le
>
>             -----Original Message-----
>             From: Doug Davis [mailto:[EMAIL PROTECTED]]
>             Sent: 2002/10/01 ($B2P(B) 18:06
>             To: [EMAIL PROTECTED]
>             Cc:
>             Subject: RE: Dynamic publishing
>
>
>
>
>
>
>
>
>             Just my opinion of course, but a couple of things immediately
>come to
>             mind...lets say you have thousands and thousands of bank
>accounts
>       you're
>             looking at having Axis manage a ton of services - which as of
>now I
>       doubt
>             it would be really good at.  At a minimum you'd need to create
>a new
>             configuration plug-in that should store its list in something
>like a
>       DB -
>             something that wouldn't require the entire list to be in memory
>(like
>       I
>             believe the current one does).  And on the topic of memory -
>you
>       would be
>             looking at have Axis create a new instance of each bank account
>       object -
>             depending on how well the garbage collection is that could be a
>       memory hog
>             as well.  I think it would be a much cleaner approach to just
>have
>       one bank
>             account object, and as long as it is thread safe, you can reuse
>it a
>             million times w/o any memory problems.  Then just have it look
>at
>       some
>             other piece of data (like soap header, rpc param, or
>       url(?account=xxxx)) to
>             get the actual account number.  Let your real back-end system
>that's
>             managing the accounts deal with all of the performance problems
>of
>             thousands of records - let Axis worry about what its supposed
>to:
>       SOAP
>             processing.  Think of it this way - let's say you were going to
>       provide a
>             web/html interface for your customers, would you consider a new
>       servlet for
>             each account? Modifying web.xml everytime a new customer were
>       created? I
>             doubt (or hope) not.  So, why treat web services any
>differently?
>             -Dug
>
>
>
>             "Tuan Le Viet" <[EMAIL PROTECTED]> on 09/30/2002 11:48:39
>PM
>
>             Please respond to [EMAIL PROTECTED]
>
>             To:    <[EMAIL PROTECTED]>
>             cc:
>             Subject:    RE: Dynamic publishing
>
>
>
>             Dug,
>
>             My idea was to have a more OO approach. I'll have a manager
>which
>       manages
>             lifetime of Account service. Each service will be published
>when
>       necessary
>             and unpublished when it's no longer needed.
>             This would not be a nightmore for scalability right?
>
>             Cheers,
>
>             Tuan
>
>                   -----Original Message-----
>                   From: Doug Davis [mailto:[EMAIL PROTECTED]]
>                   Sent: 2002/10/01 ($B2P(B) 8:16
>                   To: [EMAIL PROTECTED]
>                   Cc:
>                   Subject: RE: Dynamic publishing
>
>
>
>
>
>
>
>
>                   Sorry - missed that, but why would you really want to
>deploy
>       one
>             service
>                   per account?  That's going to be a scalability nightmare.
>Why
>       not
>             just
>                   have the account number in a soap header, as a param on
>an rpc
>       call
>             or even
>                   in the URL (ie.
>
>http://localhost:8080/axis/services/BankServices?account=12345
>       - to
>             the
>                   client the URL is just a string so adding on
>?account=12345
>       should be
>             no
>                   big deal).
>                   -Dug
>
>
>                   "Tuan Le Viet" <[EMAIL PROTECTED]> on 09/30/2002
>08:17:30
>       PM
>
>                   Please respond to [EMAIL PROTECTED]
>
>                   To:    <[EMAIL PROTECTED]>
>                   cc:
>                   Subject:    RE: Dynamic publishing
>
>
>
>                   As I understand, jws is just a java source file. Axis
>will
>       publish
>             this
>                   java class as web service automatically.
>
>                   However, this wouldn't solve my problem as my intention
>is to
>       create
>             a web
>                   service for each instance of the same class.
>
>                   Cheers,
>
>                   Tuan
>
>                         -----Original Message-----
>                         From: Doug Davis [mailto:[EMAIL PROTECTED]]
>                         Sent: 2002/10/01 ($B2P(B) 7:06
>                         To: [EMAIL PROTECTED]
>                         Cc:
>                         Subject: RE: Dynamic publishing
>
>
>
>
>
>
>
>
>                         What about deploying (dropping) a jws file - Aixs
>       processes
>             that
>                         dynamically.
>                         -Dug
>
>
>                         "Tuan Le Viet" <[EMAIL PROTECTED]> on
>09/30/2002
>       07:59:17
>             PM
>
>                         Please respond to [EMAIL PROTECTED]
>
>                         To:    <[EMAIL PROTECTED]>
>                         cc:
>                         Subject:    RE: Dynamic publishing
>
>
>
>                         Grant,
>
>                         It's obviously your solution is a feasible
>work-around.
>             However, as
>                   you
>                         stated, it's really a big mess.
>
>                         Now I consider switching to GLUE which supports
>dynamic
>             publishing
>                   from the
>                         beginning. If you're interested, take a look at
>                         http://www.themindelectric.com
>
>                         However, I really do hope that there is a clean
>solution
>       using
>             Axis.
>                         Probably in near future.
>
>                         Cheers,
>
>                         Tuan
>
>                               -----Original Message-----
>                               From: Grant Echols (JanusLogix)
>             [mailto:[EMAIL PROTECTED]]
>                               Sent: 2002/09/30 ($B7n(B) 22:09
>                               To: [EMAIL PROTECTED]
>                               Cc:
>                               Subject: Re: Dynamic publishing
>
>
>
>                               Tuan,
>
>                               I have a similar need but for a totally
>different
>       reason.
>             We
>                   have a
>                         services
>                               framework and want to dynamically publish
>public
>       'service
>             entry
>                         points' at
>                               runtime through Axis SOAP. We only have a
>Java
>       class file
>             and
>                   an
>                         associated
>                               interface as parameters so we have to make up
>the
>       rest of
>             the
>                         difference.
>                               Right now we're spawning Java2WSDL and
>WSDL2Java
>       back to
>             back
>                   so I
>                         can get a
>                               .WSDD file and then call the AdminClient to
>deploy
>       the
>                   deploy.wsdd
>                         file. Its
>                               a mess and I wish there was a better way to
>do
>       this. At
>             this
>                   point we
>                         were
>                               too unsure of the deploy.wsdd file format to
>       generate it
>                   ourselves.
>                         Perhaps
>                               even having this documented, or having a
>class that
>       we
>             could
>                         instantiate and
>                               call instead of actually spawning the wsdl...
>       utilities
>             would
>                   be
>                         better. But
>                               for now, its working...:-(
>
>                               I'm hoping someone has a better way and will
>       respond, but
>             if
>                   you're
>                         still
>                               stuck you could possibly consider this route
>as an
>             interim
>                   solution.
>
>                               Grant
>
>                               ----- Original Message -----
>                               From: "Tuan Le Viet"
><[EMAIL PROTECTED]>
>                               To: <[EMAIL PROTECTED]>
>                               Sent: Thursday, September 26, 2002 11:13 PM
>                               Subject: Dynamic publishing
>
>
>                               > Hi there,
>                               >
>                               > Does Axis support "dynamic publishing"?
>                               >
>                               > My intention:
>                               >
>                               > +I have a class called BankAccount with 3
>       methods:
>                               >
>                               >            +void deposit(int amount)
>                               >
>                               >            +void withdraw(int amount)
>                               >
>                               >            +int checkBalance()
>                               >
>                               > +I have a class Bank, which have 1 method:
>String
>                   getAccount(String
>                               accountNo).
>                               >
>                               > +I statically publish it as Web service,
>users
>       will
>             call
>                   getAccount
>                         method
>                               to get the URL to BankAccount web service,
>for
>       example:
>             if user
>                         called
>                               getAccount("12345"), URL returned is:
>                               http://somehost/axis/services/account12345
>                               >
>                               > +users then interact with this BankAccount
>       webservice
>             to
>                   deposit,
>                               withdraw, checkBalance.
>                               >
>                               > +In order to achieve this, it's required to
>       dynamically
>                   publish
>                         each
>                               BankAccount instance as a web service.
>                               >
>                               > Is this possible with Axis?
>                               >
>                               > I would really appreciate any pointers.
>                               >
>                               > Cheers,
>                               >
>                               > Tuan
>                               >
>                               >
>                               >
>                               >
>                               >
>                               >

Reply via email to