Hi,
I'm hitting the following exception Injecting the ServletContext using the
DeltaSpike Servlet module 1.7.0 on WebSphere Liberty
Product name: WebSphere Application Server
Product version: 8.5.5.6
Product edition: BASE_ILAN
*Bean*:
@ApplicationScoped
public class AppConfig {
@Inject
@DeltaSpike
private ServletContext servletContext;
@PostConstruct
public void init() {
System.out.println("ServletContext: " +
servletContext.getServletContextName());
}
@Produces
@Logger
public Logger getLogger(InjectionPoint injectionPoint) {
Logger logger =
Logger.getLogger(injectionPoint.getMember().getDeclaringClass().getName());
return logger;
}
}
*Exception*:
Exception = java.lang.IllegalStateException
Source = com.ibm.wsspi.injectionengine.InjectionBinding.getInjectionObject
probeid = 408
Stack Dump = java.lang.IllegalStateException: There is no ServletContext
stored for class loader:
com.ibm.ws.classloading.internal.ThreadContextClassLoader@4c87f45
at
org.apache.deltaspike.servlet.impl.produce.ServletContextHolder.get(ServletContextHolder.java:76)
at
org.apache.deltaspike.servlet.impl.produce.ServletObjectProducer.getServletContext(ServletObjectProducer.java:56)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at
org.apache.webbeans.inject.InjectableMethods.doInjection(InjectableMethods.java:145)
at
org.apache.webbeans.component.ProducerMethodBean.createDefaultInstance(ProducerMethodBean.java:150)
at
org.apache.webbeans.component.ProducerMethodBean.createInstance(ProducerMethodBean.java:115)
at
org.apache.webbeans.component.AbstractOwbBean.createNewInstance(AbstractOwbBean.java:233)
at
org.apache.webbeans.portable.creation.AbstractProducer.produce(AbstractProducer.java:79)
at
org.apache.webbeans.component.InjectionTargetWrapper.produce(InjectionTargetWrapper.java:133)
at
org.apache.webbeans.component.AbstractOwbBean.create(AbstractOwbBean.java:180)
at
org.apache.webbeans.context.DependentContext.getInstance(DependentContext.java:70)
at
org.apache.webbeans.context.AbstractContext.get(AbstractContext.java:144)
at
org.apache.webbeans.container.BeanManagerImpl.getReference(BeanManagerImpl.java:862)
at
org.apache.webbeans.container.BeanManagerImpl.getInjectableReference(BeanManagerImpl.java:742)
at
org.apache.webbeans.inject.AbstractInjectable.inject(AbstractInjectable.java:136)
at
org.apache.webbeans.inject.InjectableField.doInjection(InjectableField.java:59)
at
org.apache.webbeans.component.AbstractInjectionTargetBean.injectField(AbstractInjectionTargetBean.java:387)
at
org.apache.webbeans.component.AbstractInjectionTargetBean.injectFields(AbstractInjectionTargetBean.java:324)
at
org.apache.webbeans.portable.creation.InjectionTargetProducer.inject(InjectionTargetProducer.java:95)
at
org.apache.webbeans.component.InjectionTargetWrapper.inject(InjectionTargetWrapper.java:76)
at
org.apache.webbeans.component.AbstractOwbBean.create(AbstractOwbBean.java:181)
at
org.apache.webbeans.context.creational.BeanInstanceBag.create(BeanInstanceBag.java:81)
at
org.apache.webbeans.context.AbstractContext.getInstance(AbstractContext.java:179)
at
org.apache.webbeans.context.AbstractContext.get(AbstractContext.java:144)
at
org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.getContextualInstance(NormalScopedBeanInterceptorHandler.java:154)
at
org.apache.webbeans.intercept.ApplicationScopedBeanInterceptorHandler.getContextualInstance(ApplicationScopedBeanInterceptorHandler.java:70)
at
org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:114)
at
org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:108)
at
com.mycompany.AppConfig_$$_javassist_34.getLogger(AppConfig_$$_javassist_34.java)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at
org.apache.webbeans.inject.InjectableMethods.doInjection(InjectableMethods.java:145)
at
org.apache.webbeans.component.ProducerMethodBean.createDefaultInstance(ProducerMethodBean.java:150)
at
org.apache.webbeans.component.ProducerMethodBean.createInstance(ProducerMethodBean.java:115)
at
org.apache.webbeans.component.AbstractOwbBean.createNewInstance(AbstractOwbBean.java:233)
at
org.apache.webbeans.portable.creation.AbstractProducer.produce(AbstractProducer.java:79)
at
org.apache.webbeans.component.InjectionTargetWrapper.produce(InjectionTargetWrapper.java:133)
at
org.apache.webbeans.component.AbstractOwbBean.create(AbstractOwbBean.java:180)
at
org.apache.webbeans.context.DependentContext.getInstance(DependentContext.java:70)
at
org.apache.webbeans.context.AbstractContext.get(AbstractContext.java:144)
at
org.apache.webbeans.container.BeanManagerImpl.getReference(BeanManagerImpl.java:862)
at
org.apache.webbeans.container.BeanManagerImpl.getInjectableReference(BeanManagerImpl.java:742)
at
org.apache.webbeans.container.InjectableBeanManager.getInjectableReference(InjectableBeanManager.java:136)
at
com.ibm.ws.webbeans.services.InjectInjectionObjectFactory.getInjectableReference(InjectInjectionObjectFactory.java:307)
at
com.ibm.ws.webbeans.services.InjectInjectionObjectFactory.getObjectInstance(InjectInjectionObjectFactory.java:139)
at
com.ibm.ws.webbeans.services.InjectInjectionBinding.getInjectionObjectInstance(InjectInjectionBinding.java:70)
at
com.ibm.wsspi.injectionengine.InjectionBinding.getInjectionObject(InjectionBinding.java:1434)
at
com.ibm.wsspi.injectionengine.InjectionBinding.getInjectableObject(InjectionBinding.java:1374)
at
com.ibm.wsspi.injectionengine.InjectionTarget.inject(InjectionTarget.java:115)
at
com.ibm.ws.injectionengine.AbstractInjectionEngine.inject(AbstractInjectionEngine.java:842)
at
com.ibm.ejs.container.ManagedBeanOBase.injectInstance(ManagedBeanOBase.java:142)
at
com.ibm.ejs.container.SingletonBeanO.initialize(SingletonBeanO.java:302)
at com.ibm.ejs.container.BeanOFactory.create(BeanOFactory.java:105)
at
com.ibm.ejs.container.EJSHome.createSingletonBeanO(EJSHome.java:3738)