[ 
https://issues.apache.org/jira/browse/DOSGI-252?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16802931#comment-16802931
 ] 

Amichai Rothman commented on DOSGI-252:
---------------------------------------

When leaving out the context as suggested, both /cxf/service1/v1 and 
/cxf/service2/v1 work properly.

However when both services (in my case in different bundles) also have 
context=/api, then /api/service1/v1 works but /api/service2/v1 does not, and 
the log shows:

org.osgi.framework.ServiceException: CXF DOSGi: problem registering CXF HTTP 
Servlet
        at 
org.apache.cxf.dosgi.common.httpservice.HttpServiceManager.registerServlet(HttpServiceManager.java:100)
 ~[?:?]
        at 
org.apache.cxf.dosgi.common.handlers.BaseDistributionProvider.createBus(BaseDistributionProvider.java:67)
 ~[?:?]
        at 
org.apache.cxf.dosgi.dsw.handlers.rest.RsProvider.exportService(RsProvider.java:141)
 ~[?:?]
        at 
org.apache.aries.rsa.core.RemoteServiceAdminCore.exportService(RemoteServiceAdminCore.java:212)
 ~[?:?]
        at 
org.apache.aries.rsa.core.RemoteServiceAdminCore.exportService(RemoteServiceAdminCore.java:117)
 ~[?:?]
        at 
org.apache.aries.rsa.core.RemoteServiceAdminInstance$1.run(RemoteServiceAdminInstance.java:57)
 ~[?:?]
        at 
org.apache.aries.rsa.core.RemoteServiceAdminInstance$1.run(RemoteServiceAdminInstance.java:55)
 ~[?:?]
        at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
        at 
org.apache.aries.rsa.core.RemoteServiceAdminInstance.exportService(RemoteServiceAdminInstance.java:55)
 ~[?:?]
        at 
org.apache.aries.rsa.core.RemoteServiceAdminInstance.exportService(RemoteServiceAdminInstance.java:39)
 ~[?:?]
        at 
org.apache.aries.rsa.topologymanager.exporter.TopologyManagerExport.exportServiceUsingRemoteServiceAdmin(TopologyManagerExport.java:157)
 [115:org.apache.aries.rsa.topology-manager:1.11.0]
        at 
org.apache.aries.rsa.topologymanager.exporter.TopologyManagerExport.doExport(TopologyManagerExport.java:127)
 [115:org.apache.aries.rsa.topology-manager:1.11.0]
        at 
org.apache.aries.rsa.topologymanager.exporter.TopologyManagerExport.access$000(TopologyManagerExport.java:55)
 [115:org.apache.aries.rsa.topology-manager:1.11.0]
        at 
org.apache.aries.rsa.topologymanager.exporter.TopologyManagerExport$1.run(TopologyManagerExport.java:99)
 [115:org.apache.aries.rsa.topology-manager:1.11.0]
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 
[?:?]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 
[?:?]
        at java.lang.Thread.run(Thread.java:748) [?:?]
Caused by: org.osgi.service.http.NamespaceException: alias: '/api' is already 
in use in this or another context
        at 
org.ops4j.pax.web.service.spi.model.ServerModel.addServletModel(ServerModel.java:124)
 ~[?:?]
        at 
org.ops4j.pax.web.service.internal.HttpServiceStarted.registerServlet(HttpServiceStarted.java:243)
 ~[?:?]
        at 
org.ops4j.pax.web.service.internal.HttpServiceStarted.registerServlet(HttpServiceStarted.java:223)
 ~[?:?]
        at 
org.ops4j.pax.web.service.internal.HttpServiceStarted.registerServlet(HttpServiceStarted.java:207)
 ~[?:?]
        at 
org.ops4j.pax.web.service.internal.HttpServiceProxy.registerServlet(HttpServiceProxy.java:69)
 ~[?:?]
        at 
org.apache.cxf.dosgi.common.httpservice.HttpServiceManager.registerServlet(HttpServiceManager.java:94)
 ~[?:?]
        ... 16 more

> Unable to export RS services with same addresses and different contexts
> -----------------------------------------------------------------------
>
>                 Key: DOSGI-252
>                 URL: https://issues.apache.org/jira/browse/DOSGI-252
>             Project: CXF Distributed OSGi
>          Issue Type: Bug
>    Affects Versions: 2.0.0
>            Reporter: Dmytro Pishchukhin
>            Priority: Major
>
> I've tried to export RS services with such urls:
> {noformat}
> http://<default_host>:<default_port>/service1/v1
> http://<default_host>:<default_port>/service2/v1
> {noformat}
> if I use only 
> {noformat}
> org.apache.cxf.rs.httpservice.context=/service1/v1
> org.apache.cxf.rs.httpservice.context=/service2/v1
> {noformat}
> I receive an exception
> {noformat}
> org.apache.cxf.service.factory.ServiceConstructionException
>       at 
> org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBean.java:219)
> ...
> Caused by: org.apache.cxf.service.factory.ServiceConstructionException: There 
> is an endpoint already running on /.
>       at 
> org.apache.cxf.jaxrs.JAXRSBindingFactory.addListener(JAXRSBindingFactory.java:85)
> {noformat}
> If I use 
> {noformat}
> org.apache.cxf.rs.httpservice.context=/service1
> org.apache.cxf.rs.address=/v1
> org.apache.cxf.rs.httpservice.context=/service2
> org.apache.cxf.rs.address=/v1
> {noformat}
> I receive another exception
> {noformat}
> org.apache.cxf.service.factory.ServiceConstructionException
>       at 
> org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBean.java:219)
> ...
> Caused by: org.apache.cxf.service.factory.ServiceConstructionException: There 
> is an endpoint already running on /v1.
>       at 
> org.apache.cxf.jaxrs.JAXRSBindingFactory.addListener(JAXRSBindingFactory.java:85)
> {noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to