You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Martin Lichtin <li...@yahoo.com.INVALID> on 2017/06/10 14:50:37 UTC

Issue with CamelServlet when upgrading to 2.18 (OSGi)

Trying to upgrade from 2.17.7 to 2.18.4 I'm running into the following problem:

org.osgi.service.blueprint.container.ComponentDefinitionException: org.apache.aries.proxy.FinalModifierException: The methods protected final void org.apache.camel.http.common.CamelServlet.service(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse) throws javax.servlet.ServletException,java.io.IOException in class javax.servlet.http.HttpServlet are final.
     at org.apache.aries.blueprint.container.ReferenceRecipe.internalCreate(ReferenceRecipe.java:123)[11:org.apache.aries.blueprint.core:1.7.1]
     at org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:79)[11:org.apache.aries.blueprint.core:1.7.1]
     at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_121]
     at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:88)[11:org.apache.aries.blueprint.core:1.7.1]
     at org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:255)[11:org.apache.aries.blueprint.core:1.7.1]
     at org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:186)[11:org.apache.aries.blueprint.core:1.7.1]
     at org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:724)[11:org.apache.aries.blueprint.core:1.7.1]
     at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:411)[11:org.apache.aries.blueprint.core:1.7.1]
     at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:276)[11:org.apache.aries.blueprint.core:1.7.1]
     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0_121]
     at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_121]
     at org.apache.aries.blueprint.container.ExecutorServiceWrapper.run(ExecutorServiceWrapper.java:106)[11:org.apache.aries.blueprint.core:1.7.1]
     at org.apache.aries.blueprint.utils.threading.impl.DiscardableRunnable.run(DiscardableRunnable.java:48)[11:org.apache.aries.blueprint.core:1.7.1]
     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0_121]
     at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_121]
     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)[:1.8.0_121]
     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)[:1.8.0_121]
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_121]
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_121]
     at java.lang.Thread.run(Thread.java:745)[:1.8.0_121]
Caused by: org.apache.aries.proxy.FinalModifierException: The methods protected final void org.apache.camel.http.common.CamelServlet.service(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse) throws javax.servlet.ServletException,java.io.IOException in class javax.servlet.http.HttpServlet are final.
     at org.apache.aries.proxy.impl.gen.ProxySubclassGenerator.scanForFinalModifiers(ProxySubclassGenerator.java:352)[14:org.apache.aries.proxy.impl:1.0.5]
     at org.apache.aries.proxy.impl.gen.ProxySubclassGenerator.getProxySubclass(ProxySubclassGenerator.java:128)[14:org.apache.aries.proxy.impl:1.0.5]
     at org.apache.aries.proxy.impl.gen.ProxySubclassGenerator.newProxySubclassInstance(ProxySubclassGenerator.java:171)[14:org.apache.aries.proxy.impl:1.0.5]
     at org.apache.aries.proxy.impl.AsmProxyManager.createNewProxy(AsmProxyManager.java:140)[14:org.apache.aries.proxy.impl:1.0.5]
     at org.apache.aries.proxy.impl.AbstractProxyManager.createDelegatingInterceptingProxy(AbstractProxyManager.java:75)[14:org.apache.aries.proxy.impl:1.0.5]
     at org.apache.aries.proxy.impl.AbstractProxyManager.createDelegatingProxy(AbstractProxyManager.java:40)[14:org.apache.aries.proxy.impl:1.0.5]
     at org.apache.aries.blueprint.container.AbstractServiceReferenceRecipe.createProxy(AbstractServiceReferenceRecipe.java:332)[11:org.apache.aries.blueprint.core:1.7.1]
     at org.apache.aries.blueprint.container.ReferenceRecipe.internalCreate(ReferenceRecipe.java:107)[11:org.apache.aries.blueprint.core:1.7.1]
     ... 19 more

I'm using the method described on http://people.apache.org/~dkulp/camel/servlet.html
Exporting a "servlet" service and in another bundle reference it (using interface="org.apache.camel.component.http.CamelServlet").