users@javaee-spec.java.net

[javaee-spec users] Re: Eagerly getting host/port of a JAX-RS endpoint

From: Arun Gupta <arun.gupta_at_gmail.com>
Date: Fri, 19 Jun 2015 07:41:57 -0400

Yes, that would be the ideal and clean solution.

Filed [1] for tracking.

[1] https://java.net/jira/browse/JAVAEE_SPEC-47

Cheers,
Arun


On Fri, Jun 19, 2015 at 6:52 AM, Antonio Goncalves
<antonio.goncalves_at_gmail.com> wrote:
> That brings back a topic we've been talking (and avoiding) for quite a long
> time : EJB services going back to where they should go.
>
> Like @Transactional was created in JTA to be used on any beans, @Startup,
> @Schedule... should follow the same path. @Startup should go to the Java EE
> Concurrency spec and be used anywhere.
>
> Antonoi
>
> On Fri, Jun 19, 2015 at 12:31 PM, Arun Gupta <arun.gupta_at_gmail.com> wrote:
>>
>> Already using ZooKeeper as a service registry [1].
>>
>> The key question is how does a REST endpoint advertise itself to this
>> registry. We need a @Startup for a JAX-RS endpoint. Is there an
>> equivalent?
>>
>> [1]
>> http://blog.arungupta.me/zookeeper-microservice-registration-discovery/
>>
>> Arun
>>
>> On Fri, Jun 19, 2015 at 11:00 AM, Romain Manni-Bucau
>> <rmannibucau_at_gmail.com> wrote:
>> > Maybe I get it wrong but looks like you need a service registry
>> > *outside*
>> > the container itself no?
>> >
>> > Then just getting injected a client would make it easy to use.
>> >
>> > Le 19 juin 2015 10:19, "Arun Gupta" <arun.gupta_at_gmail.com> a écrit :
>> >>
>> >> Currently, I'm using @Startup @Singleton EJB [1] for registering the
>> >> REST endpoint but the host/port are statically defined. This endpoint
>> >> could be deployed on a PaaS or a Docker container or somewhere else
>> >> where the host/port could be different every time.
>> >>
>> >> Ideally, I'd love something like:
>> >>
>> >> @Path("catalog")
>> >> @Startup
>> >> public class CatalogItemREST {
>> >>
>> >> @PostConstruct
>> >> public void init() {
>> >> // get Host
>> >> // get Port
>> >> // register the service
>> >> }
>> >> }
>> >>
>> >>
>> >> [1]
>> >>
>> >> https://github.com/arun-gupta/microservices/blob/master/microservice/catalog/src/main/java/org/javaee7/wildfly/samples/everest/catalog/CatalogService.java
>> >>
>> >> [2]
>> >>
>> >> https://github.com/arun-gupta/microservices/blob/master/microservice/catalog/src/main/java/org/javaee7/wildfly/samples/everest/catalog/CatalogItemREST.java
>> >>
>> >> Thoughts?
>> >>
>> >> Cheers
>> >> Arun
>> >>
>> >> On Fri, Jun 19, 2015 at 1:10 AM, Romain Manni-Bucau
>> >> <rmannibucau_at_gmail.com> wrote:
>> >> > @Arun: can you precise the kind of API you expect (pseudo code is
>> >> > fine)?
>> >> > Typically I think to these common cases:
>> >> > - host is 0.0.0.0
>> >> > - you have N connectors (so how do you select)
>> >> > - you are behind a proxy (httpd/ngnix)
>> >> >
>> >> > Romain
>> >> >
>> >> > Le 18 juin 2015 23:52, "Arun Gupta" <arun.gupta_at_gmail.com> a écrit :
>> >> >>
>> >> >> If multiple WARs with JAX-RS REST endpoints are deployed, how are
>> >> >> URIs
>> >> >> of these endpoints advertised?
>> >> >>
>> >> >> Tried using @Startup @Singleton but there is no
>> >> >> standard/non-standard
>> >> >> way to access host/port there.
>> >> >>
>> >> >> @PostConstruct for JAX-RS endpoint is not called until the endpoint
>> >> >> is
>> >> >> invoked once.
>> >> >>
>> >> >> @Context UriInfo is only available after the endpoint has been
>> >> >> invoked.
>> >> >>
>> >> >> There is a bit of discussion at:
>> >> >>
>> >> >> https://twitter.com/arungupta/status/611493850092322816
>> >> >>
>> >> >> Any suggestions?
>> >> >>
>> >> >> Cheers
>> >> >> Arun
>> >> >>
>> >> >> --
>> >> >> http://blog.arungupta.me
>> >> >> http://twitter.com/arungupta
>> >>
>> >>
>> >>
>> >> --
>> >> http://blog.arungupta.me
>> >> http://twitter.com/arungupta
>>
>>
>>
>> --
>> http://blog.arungupta.me
>> http://twitter.com/arungupta
>
>
>
>
> --
> Antonio Goncalves
> Software architect, Java Champion and Pluralsight author
>
> Web site | Twitter | LinkedIn | Pluralsight | Paris JUG | Devoxx France



-- 
http://blog.arungupta.me
http://twitter.com/arungupta