Hi,
I have noticed an error, "Unable to start bundle" (in FileInstall.java:169) when installing the coupon plugin,
https://github.com/killbill/killbill-coupon-plugin-demo. I had compiled it with Java 11. I changed permissions of
/var/tmp/bundles directory recursively to 777 but still got the same error.
Below, please find the error log:
{
"@timestamp": "2025-03-22T00:35:42.431Z",
"message": "Unable to start bundle",
"logger_name": "org.killbill.billing.osgi.FileInstall",
"thread_name": "main",
"level": "WARN",
"stack_trace": "org.osgi.framework.BundleException: Activator start error in bundle org.kill-bill.billing.plugin.java.coupon-demo-plugin [5].\n\tat org.apache.felix.framework.Felix.activateBundle(Felix.java:2479)\n\tat org.apache.felix.framework.Felix.startBundle(Felix.java:2335)\n\tat org.apache.felix.framework.BundleImpl.start(BundleImpl.java:1006)\n\tat org.apache.felix.framework.BundleImpl.start(BundleImpl.java:992)\n\tat org.killbill.billing.osgi.FileInstall.startBundle(FileInstall.java:169)\n\tat org.killbill.billing.osgi.BundleRegistry.startBundles(BundleRegistry.java:106)\n\tat org.killbill.billing.osgi.DefaultOSGIService.start(DefaultOSGIService.java:105)\n\tat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n\tat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n\tat java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:566)\n\tat org.killbill.billing.lifecycle.DefaultLifecycle.doFireStage(DefaultLifecycle.java:158)\n\tat org.killbill.billing.lifecycle.DefaultLifecycle.fireSequence(DefaultLifecycle.java:145)\n\tat org.killbill.billing.lifecycle.DefaultLifecycle.fireStartupSequencePriorEventRegistration(DefaultLifecycle.java:79)\n\tat org.killbill.billing.server.listeners.KillbillPlatformGuiceListener.startLifecycle(KillbillPlatformGuiceListener.java:210)\n\tat org.killbill.billing.server.listeners.KillbillPlatformGuiceListener.contextInitialized(KillbillPlatformGuiceListener.java:106)\n\tat org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4007)\n\tat org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4448)\n\tat org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)\n\tat org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:599)\n\tat org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:571)\n\tat org.apache.catalina.core.StandardHost.addChild(StandardHost.java:603)\n\tat org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1175)\n\tat org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1888)\n\tat java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)\n\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)\n\tat java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)\n\tat org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1086)\n\tat org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)\n\tat org.apache.catalina.startup.HostConfig.start(HostConfig.java:1584)\n\tat org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:312)\n\tat org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:114)\n\tat org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:402)\n\tat org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:345)\n\tat org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:776)\n\tat org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:721)\n\tat org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)\n\tat org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203)\n\tat org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193)\n\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)\n\tat java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)\n\tat org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749)\n\tat org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:211)\n\tat org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)\n\tat org.apache.catalina.core.StandardService.startInternal(StandardService.java:415)\n\tat org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)\n\tat org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:878)\n\tat org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)\n\tat org.apache.catalina.startup.Catalina.start(Catalina.java:735)\n\tat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n\tat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n\tat java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:566)\n\tat org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)\n\tat org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:473)\nCaused by: java.lang.NoClassDefFoundError: javax/servlet/http/HttpServlet\n\tat java.base/java.lang.Class.getDeclaredConstructors0(Native Method)\n\tat java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3137)\n\tat java.base/java.lang.Class.getConstructor0(Class.java:3342)\n\tat java.base/java.lang.Class.newInstance(Class.java:556)\n\tat org.apache.felix.framework.Felix.createBundleActivator(Felix.java:4780)\n\tat org.apache.felix.framework.Felix.activateBundle(Felix.java:2410)\n\t... 56 common frames omitted\nCaused by: java.lang.ClassNotFoundException: javax.servlet.http.HttpServlet not found by org.kill-bill.billing.plugin.java.coupon-demo-plugin [5]\n\tat org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1591)\n\tat org.apache.felix.framework.BundleWiringImpl.access$300(BundleWiringImpl.java:79)\n\tat org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1976)\n\tat java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:527)\n\t... 62 common frames omitted\n"
}
Please can you help.
Thank you,
Vivek