Customize http ports & change "/cxf" to "/" for different services hosted on Fuse container

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Customize http ports & change "/cxf" to "/" for different services hosted on Fuse container

lkrao31
Hello All,

We have a requirement where in we have multiple services deployed on our container and these containers are in a cluster spread across different hosts.
 
Below is our Infra design  

It has 2 hosts which have fuse software instlled. ssh is not available between the 2 nor is internet access. all containers created are children of either host.
 
Fuse ESB Version 6 and patch 5  
 
• All containers on same version
• seprate profile for web service
• 3 jvms (2 root and one extra on server2) for ensemble cluster. These will not host any applications. They are purely meant for zookeeper registry.
 • Camel/cxf fabs to be deployed in web service profile
• 2 jvms/containers for web services(one on each host)
• Setup custom port for webservice 9001.


We thought of achieving load balancing via a load balancer. ie create a vip for the 2 service endpoints. CSS being the load balancer.
 
Services are supposed to be deployed in 2 containers with the following configs:
 
Web-Service-1 URL =http://ip1:9001/contexrtoor1
Web-Service-1 URL=http://ip2:9001/contextroot1


Web-Service-2 URL =http://ip1:9001/contexrtoor2
Web-Service-2 URL=http://ip2:9001/contextroot2


The web service would be called by the consumers by using a loadbalancer VIP

http://vip/contexroot1 and
http://vip/contextroot2

We were able to cusmtomize the http ports by installing the cxf feature and pax web server and we have addded a custom filed in the file org.ops4j.pax.web.properties  as org.osgi.service.http.port=9001 now our container is binded to 9001 but the issue is our web-service ends points are only accessible as
 

Web-Service-1 URL =http://ip1:9001/cxf/contexrtoor1
Web-Service-1 URL=http://ip2:9001/cxf/contextroot1


Web-Service-2 URL =http://ip1:9001/cxf/contexrtoor2
Web-Service-2 URL=http://ip2:9001/cxf/contextroot2

http://vip/cxf/contexroot1 and
http://vip/cxf/contextroot2

if we remove '/cxf' from the context root is trowing a 404 error and this is not acceptable by the dev because as per the design they want the consumers to access their services as
 
http://vip/contexroot1 and
http://vip/contextroot2

I know that one solution will be  to

Add org.apache.cxf.osgi.cfg  file into $FUSE _ESB/etc/ folder, add an  
entry
org.apache.cxf.servlet.context=/mycontext

but my doing that it is always explicitly set to only one service , and for the consumers to access other service again they should have to go through

Web-Service-2 URL =http://ip1:9001/contestroot1/contexrtoor2 , which is not desired by our architecture team since in future they could be many services running on this container and each service should have to be independently accessed.



Please kindly guide me on how to achieve this.

Thanks
Reply | Threaded
Open this post in threaded view
|

Re: Customize http ports & change "/cxf" to "/" for different services hosted on Fuse container

Aki Yoshida-3
If no other services are running under different context at the same
port, can you just set the cxf's servlet context to "/" to make the
cxf services accessible at that root path context?

2014-02-10 22:25 GMT+01:00 lkrao31 <[hidden email]>:

> Hello All,
>
> We have a requirement where in we have multiple services deployed on our
> container and these containers are in a cluster spread across different
> hosts.
>
> Below is our Infra design
>
> It has 2 hosts which have fuse software instlled. ssh is not available
> between the 2 nor is internet access. all containers created are children of
> either host.
>
> Fuse ESB Version 6 and patch 5
>
> * All containers on same version
> * seprate profile for web service
> * 3 jvms (2 root and one extra on server2) for ensemble cluster. These will
> not host any applications. They are purely meant for zookeeper registry.
>  * Camel/cxf fabs to be deployed in web service profile
> * 2 jvms/containers for web services(one on each host)
> * Setup custom port for webservice 9001.
>
>
> We thought of achieving load balancing via a load balancer. ie create a vip
> for the 2 service endpoints. CSS being the load balancer.
>
> Services are supposed to be deployed in 2 containers with the following
> configs:
>
> Web-Service-1 URL =http://ip1:9001/contexrtoor1
> Web-Service-1 URL=http://ip2:9001/contextroot1
>
>
> Web-Service-2 URL =http://ip1:9001/contexrtoor2
> Web-Service-2 URL=http://ip2:9001/contextroot2
>
>
> The web service would be called by the consumers by using a loadbalancer VIP
>
> http://vip/contexroot1 and
> http://vip/contextroot2
>
> We were able to cusmtomize the http ports by installing the cxf feature and
> pax web server and we have addded a custom filed in the file
> org.ops4j.pax.web.properties  as org.osgi.service.http.port=9001 now our
> container is binded to 9001 but the issue is our web-service ends points are
> only accessible as
>
>
> Web-Service-1 URL =http://ip1:9001/cxf/contexrtoor1
> Web-Service-1 URL=http://ip2:9001/cxf/contextroot1
>
>
> Web-Service-2 URL =http://ip1:9001/cxf/contexrtoor2
> Web-Service-2 URL=http://ip2:9001/cxf/contextroot2
>
> http://vip/cxf/contexroot1 and
> http://vip/cxf/contextroot2
>
> if we remove '/cxf' from the context root is trowing a 404 error and this is
> not acceptable by the dev because as per the design they want the consumers
> to access their services as
>
> http://vip/contexroot1 and
> http://vip/contextroot2
>
> I know that one solution will be  to
>
> Add org.apache.cxf.osgi.cfg  file into $FUSE _ESB/etc/ folder, add an
> entry
> org.apache.cxf.servlet.context=/mycontext
>
> but my doing that it is always explicitly set to only one service , and for
> the consumers to access other service again they should have to go through
>
> Web-Service-2 URL =http://ip1:9001/contestroot1/contexrtoor2 , which is not
> desired by our architecture team since in future they could be many services
> running on this container and each service should have to be independently
> accessed.
>
>
>
> Please kindly guide me on how to achieve this.
>
> Thanks
>
>
>
> --
> View this message in context: http://camel.465427.n5.nabble.com/Customize-http-ports-change-cxf-to-for-different-services-hosted-on-Fuse-container-tp5747052.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
Reply | Threaded
Open this post in threaded view
|

Re: Customize http ports & change "/cxf" to "/" for different services hosted on Fuse container

Cristiano Costantini
Hi Aki,
how do you do that?

Thank you,
Cristiano


2014-02-11 15:48 GMT+01:00 Aki Yoshida <[hidden email]>:

> If no other services are running under different context at the same
> port, can you just set the cxf's servlet context to "/" to make the
> cxf services accessible at that root path context?
>
> 2014-02-10 22:25 GMT+01:00 lkrao31 <[hidden email]>:
> > Hello All,
> >
> > We have a requirement where in we have multiple services deployed on our
> > container and these containers are in a cluster spread across different
> > hosts.
> >
> > Below is our Infra design
> >
> > It has 2 hosts which have fuse software instlled. ssh is not available
> > between the 2 nor is internet access. all containers created are
> children of
> > either host.
> >
> > Fuse ESB Version 6 and patch 5
> >
> > * All containers on same version
> > * seprate profile for web service
> > * 3 jvms (2 root and one extra on server2) for ensemble cluster. These
> will
> > not host any applications. They are purely meant for zookeeper registry.
> >  * Camel/cxf fabs to be deployed in web service profile
> > * 2 jvms/containers for web services(one on each host)
> > * Setup custom port for webservice 9001.
> >
> >
> > We thought of achieving load balancing via a load balancer. ie create a
> vip
> > for the 2 service endpoints. CSS being the load balancer.
> >
> > Services are supposed to be deployed in 2 containers with the following
> > configs:
> >
> > Web-Service-1 URL =http://ip1:9001/contexrtoor1
> > Web-Service-1 URL=http://ip2:9001/contextroot1
> >
> >
> > Web-Service-2 URL =http://ip1:9001/contexrtoor2
> > Web-Service-2 URL=http://ip2:9001/contextroot2
> >
> >
> > The web service would be called by the consumers by using a loadbalancer
> VIP
> >
> > http://vip/contexroot1 and
> > http://vip/contextroot2
> >
> > We were able to cusmtomize the http ports by installing the cxf feature
> and
> > pax web server and we have addded a custom filed in the file
> > org.ops4j.pax.web.properties  as org.osgi.service.http.port=9001 now our
> > container is binded to 9001 but the issue is our web-service ends points
> are
> > only accessible as
> >
> >
> > Web-Service-1 URL =http://ip1:9001/cxf/contexrtoor1
> > Web-Service-1 URL=http://ip2:9001/cxf/contextroot1
> >
> >
> > Web-Service-2 URL =http://ip1:9001/cxf/contexrtoor2
> > Web-Service-2 URL=http://ip2:9001/cxf/contextroot2
> >
> > http://vip/cxf/contexroot1 and
> > http://vip/cxf/contextroot2
> >
> > if we remove '/cxf' from the context root is trowing a 404 error and
> this is
> > not acceptable by the dev because as per the design they want the
> consumers
> > to access their services as
> >
> > http://vip/contexroot1 and
> > http://vip/contextroot2
> >
> > I know that one solution will be  to
> >
> > Add org.apache.cxf.osgi.cfg  file into $FUSE _ESB/etc/ folder, add an
> > entry
> > org.apache.cxf.servlet.context=/mycontext
> >
> > but my doing that it is always explicitly set to only one service , and
> for
> > the consumers to access other service again they should have to go
> through
> >
> > Web-Service-2 URL =http://ip1:9001/contestroot1/contexrtoor2 , which is
> not
> > desired by our architecture team since in future they could be many
> services
> > running on this container and each service should have to be
> independently
> > accessed.
> >
> >
> >
> > Please kindly guide me on how to achieve this.
> >
> > Thanks
> >
> >
> >
> > --
> > View this message in context:
> http://camel.465427.n5.nabble.com/Customize-http-ports-change-cxf-to-for-different-services-hosted-on-Fuse-container-tp5747052.html
> > Sent from the Camel - Users mailing list archive at Nabble.com.
>