You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Jim Talbut <jt...@spudsoft.co.uk> on 2013/11/22 10:13:15 UTC

Custom ports using CXF in OSGi

Hi,

I've got a number of web services running using Camel configured like:
     <camel-cxf:cxfEndpoint id="serviceSchedulerClient"
address="http://0.0.0.0:8026/UserAgentsDataLoad/1.0/TaskSchedulerClient"
wsdlURL="resources/1.0.0/TaskSchedulerClient.wsdl"
xmlns:cli="http://groupgti.com/esb/jobengines/client/service/GroupGtiSupportSystem/ClientSchedulerTarget"
serviceName="cli:ClientSchedulerTargetService"
endpointName="cli:ClientSchedulerPortTypeBindingPort"
serviceClass="com.groupgti.esb.jobengines.client.service.groupgtisupportsystem.clientschedulertarget.ClientSchedulerTargetPortType"
                    />

These services are all on the same port, but different URLs.
There are other services on other ports.

The services are configured using fileinstall by simply dropping spring 
configuration files in a "deploy" directory (separate from the etc 
directory).

I'm finding that fileinstall (or something on the same timeframe as 
fileinstall) is causing all of these spring bundles to restart, and they 
are failing to come back up.
I think what is happening is that fileinstall is taking them down and 
bringing them back up at the same time, so some are going down whilst 
others are coming up and the ports are in use so it fails.
I don't know why fileinstall is restarting these bundles, it shouldn't 
need to, nothing has changed.

As a fix I'm looking at moving to use the OSGi HTTP transport rather 
than the direct Jetty one (thinking that this will mean the ports are 
always open, but it also fixes another problem I have with configuring 
the jetty engines).

I know I can have the OSGi container listen on different ports, but is 
it possible to keep them separate?
So port 8026, managed by PAX, only responds to this set of endpoints and 
not any other endpoints that may also be running (on other ports also 
managed by OSGi) in the same container.

Thanks

Jim

Re: Custom ports using CXF in OSGi

Posted by Jim Talbut <jt...@spudsoft.co.uk>.
Thanks Christian, but the whole point is that I don't want the services 
on the same port.
I want to be able to categorise services onto different ports for 
security reasons - it should not be possible to know anything about one 
service just because you know about another.
I can get pax web to listen on multiple ports, but then all the services 
are available on all of them.

Jim

On 23/11/2013 08:20, Christian Schneider wrote:
> How about using address="/UserAgentsDataLoad/1.0/TaskSchedulerClient" ?
> This will make cxf use the servlet transport. It allows all your 
> services to run on the same port and use the OSGi http service.
>
> Christian
>
> Am 22.11.2013 10:13, schrieb Jim Talbut:
>> Hi,
>>
>> I've got a number of web services running using Camel configured like:
>>     <camel-cxf:cxfEndpoint id="serviceSchedulerClient"
>> address="http://0.0.0.0:8026/UserAgentsDataLoad/1.0/TaskSchedulerClient"
>> wsdlURL="resources/1.0.0/TaskSchedulerClient.wsdl"
>> xmlns:cli="http://groupgti.com/esb/jobengines/client/service/GroupGtiSupportSystem/ClientSchedulerTarget" 
>>
>> serviceName="cli:ClientSchedulerTargetService"
>> endpointName="cli:ClientSchedulerPortTypeBindingPort"
>> serviceClass="com.groupgti.esb.jobengines.client.service.groupgtisupportsystem.clientschedulertarget.ClientSchedulerTargetPortType" 
>>
>>                    />
>>
>> These services are all on the same port, but different URLs.
>> There are other services on other ports.
>>
>> The services are configured using fileinstall by simply dropping 
>> spring configuration files in a "deploy" directory (separate from the 
>> etc directory).
>>
>> I'm finding that fileinstall (or something on the same timeframe as 
>> fileinstall) is causing all of these spring bundles to restart, and 
>> they are failing to come back up.
>> I think what is happening is that fileinstall is taking them down and 
>> bringing them back up at the same time, so some are going down whilst 
>> others are coming up and the ports are in use so it fails.
>> I don't know why fileinstall is restarting these bundles, it 
>> shouldn't need to, nothing has changed.
>>
>> As a fix I'm looking at moving to use the OSGi HTTP transport rather 
>> than the direct Jetty one (thinking that this will mean the ports are 
>> always open, but it also fixes another problem I have with 
>> configuring the jetty engines).
>>
>> I know I can have the OSGi container listen on different ports, but 
>> is it possible to keep them separate?
>> So port 8026, managed by PAX, only responds to this set of endpoints 
>> and not any other endpoints that may also be running (on other ports 
>> also managed by OSGi) in the same container.
>>
>> Thanks
>>
>> Jim
>
>


Re: Custom ports using CXF in OSGi

Posted by Christian Schneider <ch...@die-schneider.net>.
How about using address="/UserAgentsDataLoad/1.0/TaskSchedulerClient" ?
This will make cxf use the servlet transport. It allows all your 
services to run on the same port and use the OSGi http service.

Christian

Am 22.11.2013 10:13, schrieb Jim Talbut:
> Hi,
>
> I've got a number of web services running using Camel configured like:
>     <camel-cxf:cxfEndpoint id="serviceSchedulerClient"
> address="http://0.0.0.0:8026/UserAgentsDataLoad/1.0/TaskSchedulerClient"
> wsdlURL="resources/1.0.0/TaskSchedulerClient.wsdl"
> xmlns:cli="http://groupgti.com/esb/jobengines/client/service/GroupGtiSupportSystem/ClientSchedulerTarget" 
>
> serviceName="cli:ClientSchedulerTargetService"
> endpointName="cli:ClientSchedulerPortTypeBindingPort"
> serviceClass="com.groupgti.esb.jobengines.client.service.groupgtisupportsystem.clientschedulertarget.ClientSchedulerTargetPortType" 
>
>                    />
>
> These services are all on the same port, but different URLs.
> There are other services on other ports.
>
> The services are configured using fileinstall by simply dropping 
> spring configuration files in a "deploy" directory (separate from the 
> etc directory).
>
> I'm finding that fileinstall (or something on the same timeframe as 
> fileinstall) is causing all of these spring bundles to restart, and 
> they are failing to come back up.
> I think what is happening is that fileinstall is taking them down and 
> bringing them back up at the same time, so some are going down whilst 
> others are coming up and the ports are in use so it fails.
> I don't know why fileinstall is restarting these bundles, it shouldn't 
> need to, nothing has changed.
>
> As a fix I'm looking at moving to use the OSGi HTTP transport rather 
> than the direct Jetty one (thinking that this will mean the ports are 
> always open, but it also fixes another problem I have with configuring 
> the jetty engines).
>
> I know I can have the OSGi container listen on different ports, but is 
> it possible to keep them separate?
> So port 8026, managed by PAX, only responds to this set of endpoints 
> and not any other endpoints that may also be running (on other ports 
> also managed by OSGi) in the same container.
>
> Thanks
>
> Jim


-- 
  
Christian Schneider
http://www.liquid-reality.de

Open Source Architect
Talend Application Integration Division http://www.talend.com