cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Carlos Sierra (JIRA)" <>
Subject [jira] [Commented] (CXF-7409) ServiceConstructionException when adding JAX-RS application ruins existing applications
Date Wed, 09 Aug 2017 11:52:00 GMT


Carlos Sierra commented on CXF-7409:

hey [~sergeyb],

thanks for looking into this. I have rechecked and this is still happening in our case, even
in 3.1.12.

I have looked at JAXRSClientServerBookTest and we are bootstrapping CXF using CXFNonSpringServlet:
CXFNonSpringServlet cxfNonSpringServlet = new CXFNonSpringServlet();

I can see in your test that it is using SpringBusFactory. Could that be responsible for the
different behavior?

I know that this might not be orthodox but I could point you to a branch in our project with
the failing test and the way we worked it around. Would that be useful for you? I can see
in my debug that the culprit is:

because the same destination is shared between all the servers that are created for the same
address, thus effectively destroying the destination when the second and conflicting server
is created. 

> ServiceConstructionException when adding JAX-RS application ruins existing applications
> ---------------------------------------------------------------------------------------
>                 Key: CXF-7409
>                 URL:
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-RS
>    Affects Versions: 3.1.10
>            Reporter: Carlos Sierra
> if a new application conflicts with
> an existing one, an Exception:
> ---
> Caused by: org.apache.cxf.service.factory.ServiceConstructionException:
> There is an endpoint already running on /test-application.
>       at
> org.apache.cxf.jaxrs.JAXRSBindingFactory.addListener(
>       at org.apache.cxf.endpoint.ServerImpl.start(
>       at
> org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(
> ---
> is raised, which is expected. The problem is that the already existing
> application ceases to work in the bus.
> Following [~sergeyb]'s advice I tried removing 
> {code:java}
> server.destroy()
> {code}
> from the 
> {code:java}
> catch(RuntimeException e) {}
> {code}
> block in JAXRSServerFactoryBean's create method. However there is a comment saying that
that invocation is there to prevent leaks. Also, invocations to server.destroy() in other
moments don't affect other existing applications in the bus. 

This message was sent by Atlassian JIRA

View raw message