You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@deltaspike.apache.org by Dessie K <de...@gmail.com> on 2016/07/05 13:00:10 UTC
Fwd: IllegalStateException: There is no ServletContext stored for
class loader: com.ibm.ws.classloading.internal.ThreadContextClassLoader
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)
Re: IllegalStateException: There is no ServletContext stored for
class loader: com.ibm.ws.classloading.internal.ThreadContextClassLoader
Posted by Rafael Pestano <rm...@gmail.com>.
Looks like CDI container is started before servlet container.
A possible solution would be to inject this bean on a servlet context
listener and set the information you need on this bean. Or maybe inject an
Instance of ServletContext and get it later (not in @PostConstruct).
Maybe it hekps.
2016-07-05 10:00 GMT-03:00 Dessie K <de...@gmail.com>:
> 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)
>
--
Att,
Rafael M. Pestano
Desenvolvedor Java Cia. de Processamento de Dados do Rio Grande do Sul
http://rpestano.wordpress.com/
@realpestano