[
https://issues.apache.org/jira/browse/DOSGI-58?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Christian Schneider resolved DOSGI-58.
--------------------------------------
Resolution: Won't Fix
Assignee: Christian Schneider
With recommendation to use the servlet transport.
> Better handling for port conflicts when using property
> org.apache.cxf.rs.address
> --------------------------------------------------------------------------------
>
> Key: DOSGI-58
> URL: https://issues.apache.org/jira/browse/DOSGI-58
> Project: CXF Distributed OSGi
> Issue Type: Improvement
> Components: REST
> Affects Versions: 1.1
> Reporter: Daniel Bimschas
> Assignee: Christian Schneider
> Priority: Minor
> Labels: configuration
>
> Below is an exception from the mailing list thread that describes the
> issue... (reverse order!)
> I see....Perhaps it could recognize that a conflict will occur and print a
> more meaningful exception message advising users to use a context property.
> If DOSGI will try to silently attach the endpoint to a paxweb-enabled
> HttpService then it might become complicated (paxweb may not be installed in
> case of multibindle distro) or a user might've used the explicit address
> exactly because a standalone jetty were expected to start, etc...
> Can you please open a JIRA in a DOSGI subproject so that we can track this
> issue and discuss how to fix it ?
> thanks, Sergey
> ----- Original Message ----- From: "Daniel Bimschas"
> <[email protected]>
> To: <[email protected]>
> Sent: Friday, February 05, 2010 3:07 PM
> Subject: Re: DOSGi and JSON responses
> Oh, I know of the org.osgi.service.http.port value that lets Pax Web start
> it's Jetty instance on 8080 per default. I tried to say that users of DOSGI
> (especially newbies) would certainly expect that using
> "org.apache.cxf.rs.address" would work nevertheless by simply using the same
> port (i.e. if there's no web context conflict).
> I guess that some DOSGI (or CXF) bundle which is responsible for registering
> the JAX-RS servlet to some Jetty instance could surely check if there's a
> servlet container instance running on the desired port and reusing that
> instance...
> Daniel
> Am 05.02.2010 um 15:56 schrieb Sergey Beryozkin:
> Hi
> This can be easily fixed AFAIK, I can't recall the name of the paxweb
> property but you can ensure its Httpservice occupies some other port...Just
> checked in ServiceMix, it is
> org.osgi.service.http.port=8181,
> add it to felix/etc/config.properties. etc
> cheers, Sergey
> Sergey,
> I just stumbled over another issue that may annoy DOSGI users. If you start
> the single bundle distribution (no idea if it's the same with multi bundle)
> it starts a Jetty on localhost:8080 which should be usable like a OSGi
> compendium HTTP service (that's what I understood at least). Now if one uses
> the JAX-RS stuff and registers it's instance with the
> "org.apache.cxf.rs.address" property he will have to choose a port other than
> 8080 or he'll get the following exception:
> WARNUNG: WARNING : Problem creating a remote endpoint for
> de.uniluebeck.itm.soapraktikum.ws0910.persons.vz.rest.PersonResource from CXF
> PublishHook, reason is null
> org.apache.cxf.service.factory.ServiceConstructionException
> at
> org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBean.java:114)
> at
> org.apache.cxf.dosgi.dsw.handlers.JaxRSPojoConfigurationTypeHandler.createServer(JaxRSPojoConfigurationTypeHandler.java:129)
> at
> org.apache.cxf.dosgi.dsw.hooks.ServiceHookUtils.createServer(ServiceHookUtils.java:86)
> at
> org.apache.cxf.dosgi.dsw.hooks.CxfPublishHook.createServer(CxfPublishHook.java:106)
> at
> org.apache.cxf.dosgi.dsw.hooks.CxfPublishHook.publishEndpoint(CxfPublishHook.java:80)
> at org.apache.cxf.dosgi.dsw.Activator$1.run(Activator.java:164)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:637)
> Caused by: org.apache.cxf.interceptor.Fault: Could not start Jetty server:
> Address already in use
> at
> org.apache.cxf.transport.http_jetty.JettyHTTPServerEngine.addServant(JettyHTTPServerEngine.java:339)
> at
> org.apache.cxf.transport.http_jetty.JettyHTTPDestination.activate(JettyHTTPDestination.java:157)
> at
> org.apache.cxf.transport.AbstractObservable.setMessageObserver(AbstractObservable.java:48)
> at
> org.apache.cxf.binding.AbstractBindingFactory.addListener(AbstractBindingFactory.java:164)
> at org.apache.cxf.endpoint.ServerImpl.start(ServerImpl.java:122)
> at
> org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBean.java:105)
> ... 8 more
> Caused by: java.net.BindException: Address already in use
> at sun.nio.ch.Net.bind(Native Method)
> at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:119)
> at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:59)
> at
> org.mortbay.jetty.nio.SelectChannelConnector.open(SelectChannelConnector.java:205)
> at
> org.mortbay.jetty.nio.SelectChannelConnector.doStart(SelectChannelConnector.java:304)
> at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
> at org.mortbay.jetty.Server.doStart(Server.java:233)
> at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
> at
> org.apache.cxf.transport.http_jetty.JettyHTTPServerEngine.addServant(JettyHTTPServerEngine.java:306)
> ... 13 more
> I guess it should be possible to reuse the running Jetty instance and deploy
> the instance to the standard OSGi HTTP service. At least that's what a user
> would expect. What do you think about it?
> Kind regards,
> Daniel
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)