Hello,

I'm using aries-jax-rs-whiteboard to host my REST api as follow:
--------the app
@Component(
service = Application.class,
property= {
"osgi.jaxrs.name=RestApp",
JAX_RS_APPLICATION_BASE + "=/rest",
"authentication.with=keycloak"
}
)
public class RestApiApp extends Application{

@Override
  public Set<Object> getSingletons() {
      return Collections.singleton(this);
  }
}
-------the resource
@Component(
service = Api.class,
property = {
"osgi.jaxrs.name=RestApi",
"osgi.jaxrs.resource=true",
"osgi.jaxrs.application.select=(osgi.jaxrs.name=RestApp)"
}
)
@Path("/object")
public final class Api {
public static final Response EMPTY_RESPONSE =
Response.noContent().type(MediaType.TEXT_HTML_TYPE).build();
@GET
@Path("/getObject")
@Produces(MediaType.APPLICATION_JSON)
public String getObject() {
    //return some json
}
}

The API works fine, now i need to add a jetty handler to return some static
js and icon, so in the Activator of my bundle, i add:
ResourceHandler bootstrapResource = new ResourceHandler();
bootstrapResource.setResourceBase("bootstrap");
bootstrapResource.setDirectoriesListed(true);
ContextHandler bootstrapContext = new ContextHandler();
bootstrapContext.setContextPath("bootstrap");
bootstrapContext.setHandler(bootstrapResource);
bootstrapResourceHandler = context.registerService(Handler.class,
bootstrapContext, null);

This code is from
http://ops4j.github.io/pax/web/SNAPSHOT/User-Guide.html#advanced-jetty-configuration

Now when i start the server i got this error:
!ENTRY org.apache.aries.jax.rs.whiteboard 4 0 2018-09-05 19:13:20.976
!MESSAGE FrameworkEvent ERROR
!STACK 0
java.lang.IllegalStateException: The service has been unregistered
at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getReferenceImpl(ServiceRegistrationImpl.java:285)
at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getReference(ServiceRegistrationImpl.java:274)
at
org.apache.aries.jax.rs.whiteboard.internal.utils.Utils.updateProperty(Utils.java:188)
at
org.apache.aries.jax.rs.whiteboard.internal.Whiteboard$ServiceRegistrationChangeCounter.inc(Whiteboard.java:1318)
at
org.apache.aries.jax.rs.whiteboard.internal.Whiteboard.lambda$countChanges$88(Whiteboard.java:1148)
at org.apache.aries.component.dsl.OSGi.lambda$null$69(OSGi.java:614)
at org.apache.aries.component.dsl.Publisher.apply(Publisher.java:28)
at org.apache.aries.component.dsl.OSGi.lambda$null$71(OSGi.java:682)
at org.apache.aries.component.dsl.Publisher.apply(Publisher.java:28)
at
org.apache.aries.component.dsl.internal.ServiceReferenceOSGi$DefaultServiceTrackerCustomizer.addingService(ServiceReferenceOSGi.java:74)
at
org.apache.aries.component.dsl.internal.ServiceReferenceOSGi$DefaultServiceTrackerCustomizer.addingService(ServiceReferenceOSGi.java:56)
at
org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:941)
at
org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:1)
at
org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256)
at
org.osgi.util.tracker.AbstractTracked.trackInitial(AbstractTracked.java:183)
at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:318)
at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:261)
at
org.apache.aries.component.dsl.internal.ServiceReferenceOSGi.lambda$new$0(ServiceReferenceOSGi.java:50)
at org.apache.aries.component.dsl.internal.OSGiImpl.run(OSGiImpl.java:50)
at org.apache.aries.component.dsl.OSGi.lambda$filter$72(OSGi.java:678)
at
org.apache.aries.component.dsl.internal.OSGiImpl.lambda$create$0(OSGiImpl.java:39)
at org.apache.aries.component.dsl.internal.OSGiImpl.run(OSGiImpl.java:50)
at org.apache.aries.component.dsl.OSGi.lambda$effects$70(OSGi.java:611)
at
org.apache.aries.component.dsl.internal.OSGiImpl.lambda$create$0(OSGiImpl.java:39)
at org.apache.aries.component.dsl.internal.OSGiImpl.run(OSGiImpl.java:50)
at
org.apache.aries.component.dsl.internal.AllOSGi.lambda$null$0(AllOSGi.java:40)
at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
at java.util.Spliterators$ArraySpliterator.forEachRemaining(Unknown Source)
at java.util.stream.AbstractPipeline.copyInto(Unknown Source)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source)
at java.util.stream.AbstractPipeline.evaluate(Unknown Source)
at java.util.stream.ReferencePipeline.collect(Unknown Source)
at
org.apache.aries.component.dsl.internal.AllOSGi.lambda$new$2(AllOSGi.java:41)
at org.apache.aries.component.dsl.internal.OSGiImpl.run(OSGiImpl.java:50)
at org.apache.aries.component.dsl.OSGi.lambda$splitBy$87(OSGi.java:749)
at
org.apache.aries.component.dsl.internal.OSGiImpl.lambda$create$0(OSGiImpl.java:39)
at org.apache.aries.component.dsl.internal.OSGiImpl.run(OSGiImpl.java:50)
at org.apache.aries.component.dsl.OSGi.lambda$effects$70(OSGi.java:611)
at
org.apache.aries.component.dsl.internal.OSGiImpl.lambda$create$0(OSGiImpl.java:39)
at org.apache.aries.component.dsl.internal.OSGiImpl.run(OSGiImpl.java:50)
at org.apache.aries.component.dsl.OSGi.lambda$distribute$65(OSGi.java:581)
at
org.apache.aries.component.dsl.internal.OSGiImpl.lambda$create$0(OSGiImpl.java:39)
at org.apache.aries.component.dsl.internal.OSGiImpl.run(OSGiImpl.java:50)
at
org.apache.aries.component.dsl.internal.IgnoreImpl.lambda$new$1(IgnoreImpl.java:29)
at org.apache.aries.component.dsl.internal.OSGiImpl.run(OSGiImpl.java:50)
at
org.apache.aries.component.dsl.internal.AllOSGi.lambda$null$0(AllOSGi.java:40)
at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
at java.util.Spliterators$ArraySpliterator.forEachRemaining(Unknown Source)
at java.util.stream.AbstractPipeline.copyInto(Unknown Source)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source)
at java.util.stream.AbstractPipeline.evaluate(Unknown Source)
at java.util.stream.ReferencePipeline.collect(Unknown Source)
at
org.apache.aries.component.dsl.internal.AllOSGi.lambda$new$2(AllOSGi.java:41)
at org.apache.aries.component.dsl.internal.OSGiImpl.run(OSGiImpl.java:50)
at org.apache.aries.component.dsl.internal.OSGiImpl.run(OSGiImpl.java:44)
at
org.apache.aries.jax.rs.whiteboard.internal.Whiteboard.start(Whiteboard.java:184)
at
org.apache.aries.component.dsl.internal.EffectsOSGi.lambda$new$1(EffectsOSGi.java:30)
at org.apache.aries.component.dsl.internal.OSGiImpl.run(OSGiImpl.java:50)
at
org.apache.aries.component.dsl.internal.AllOSGi.lambda$null$0(AllOSGi.java:40)
at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
at java.util.Spliterators$ArraySpliterator.forEachRemaining(Unknown Source)
at java.util.stream.AbstractPipeline.copyInto(Unknown Source)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source)
at java.util.stream.AbstractPipeline.evaluate(Unknown Source)
at java.util.stream.ReferencePipeline.collect(Unknown Source)
at
org.apache.aries.component.dsl.internal.AllOSGi.lambda$new$2(AllOSGi.java:41)
at org.apache.aries.component.dsl.internal.OSGiImpl.run(OSGiImpl.java:50)
at org.apache.aries.component.dsl.OSGi.lambda$null$73(OSGi.java:693)
at org.apache.aries.component.dsl.OSGi.lambda$null$69(OSGi.java:617)
at org.apache.aries.component.dsl.Publisher.apply(Publisher.java:28)
at org.apache.aries.component.dsl.Publisher.apply(Publisher.java:25)
at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
at java.util.Collections$2.tryAdvance(Unknown Source)
at java.util.Collections$2.forEachRemaining(Unknown Source)
at java.util.stream.AbstractPipeline.copyInto(Unknown Source)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source)
at java.util.stream.AbstractPipeline.evaluate(Unknown Source)
at java.util.stream.ReferencePipeline.collect(Unknown Source)
at
org.apache.aries.component.dsl.internal.JustOSGiImpl.lambda$new$2(JustOSGiImpl.java:42)
at org.apache.aries.component.dsl.internal.OSGiImpl.run(OSGiImpl.java:50)
at org.apache.aries.component.dsl.OSGi.lambda$effects$70(OSGi.java:611)
at
org.apache.aries.component.dsl.internal.OSGiImpl.lambda$create$0(OSGiImpl.java:39)
at org.apache.aries.component.dsl.internal.OSGiImpl.run(OSGiImpl.java:50)
at org.apache.aries.component.dsl.OSGi.lambda$flatMap$74(OSGi.java:693)
at
org.apache.aries.component.dsl.internal.OSGiImpl.lambda$create$0(OSGiImpl.java:39)
at org.apache.aries.component.dsl.internal.OSGiImpl.run(OSGiImpl.java:50)
at org.apache.aries.component.dsl.OSGi.lambda$null$73(OSGi.java:693)
at org.apache.aries.component.dsl.Publisher.apply(Publisher.java:28)
at
org.apache.aries.component.dsl.internal.ServiceReferenceOSGi$DefaultServiceTrackerCustomizer.addingService(ServiceReferenceOSGi.java:74)
at
org.apache.aries.component.dsl.internal.ServiceReferenceOSGi$DefaultServiceTrackerCustomizer.addingService(ServiceReferenceOSGi.java:56)
at
org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:941)
at
org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:1)
at
org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256)
at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:229)
at
org.osgi.util.tracker.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:901)
at
org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:109)
at
org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:920)
at
org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at
org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:862)
at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:801)
at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:127)
at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:225)
at
org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:469)
at
org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:487)
at
org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:1004)
at
org.ops4j.pax.web.extender.whiteboard.internal.ExtendedHttpServiceRuntime.registerService(ExtendedHttpServiceRuntime.java:144)
at
org.ops4j.pax.web.extender.whiteboard.internal.ExtendedHttpServiceRuntime.serviceChanged(ExtendedHttpServiceRuntime.java:116)
at
org.ops4j.pax.web.extender.whiteboard.internal.ExtendedHttpServiceRuntime.serviceChanged(ExtendedHttpServiceRuntime.java:44)
at
org.ops4j.pax.web.extender.whiteboard.internal.util.tracker.ReplaceableService.bind(ReplaceableService.java:86)
at
org.ops4j.pax.web.extender.whiteboard.internal.util.tracker.ReplaceableService$Customizer.addingService(ReplaceableService.java:105)
at
org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:941)
at
org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:1)
at
org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256)
at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:229)
at
org.osgi.util.tracker.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:901)
at
org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:109)
at
org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:920)
at
org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at
org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:862)
at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:801)
at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:127)
at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:225)
at
org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:469)
at
org.ops4j.pax.web.service.internal.Activator.updateController(Activator.java:399)
at
org.ops4j.pax.web.service.internal.Activator.lambda$scheduleUpdateFactory$1(Activator.java:331)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

hence my API does not work anymore, sending request to the API endpoint
result in 404.

I'm not sure if this has something to do with
https://ops4j1.jira.com/wiki/spaces/paxweb/pages/354025473/HTTP+Context+processing


Does anyone have an idea what may happened  and what can I do to fix this?

Thank you in advance

Thai

Reply via email to