Hi Mark The WAR is placed in an EAR but all cdi archives are placed in the WEB-INF/lib folder of the WAR.
I have not tried to make the methods public but is it not strange that this error occure only 1 time per maybe 1 million requests on average? Regards Lars-Fredrik On May 30, 2014 4:07 PM, "Mark Struberg" <[email protected]> wrote: > There is no EAR involed? All is in a single ClassLoader? > Then this is really weird. Did you try to make the respective methods > public? > > LieGrue, > strub > > > -------------------------------------------- > On Fri, 30/5/14, Lars-Fredrik Smedberg <[email protected]> wrote: > > Subject: Re: Javassist throws java.lang.IllegalAccessError > To: "[email protected]" <[email protected]> > Date: Friday, 30 May, 2014, 14:38 > > Hi > We see the following exception in > our logs (it might be similar or related to the old mail I > quoted below). In this case all the classes are packaged in > .jar-files all placed within a single war-file. Each > jar-file as well as the war-file have beans.xml files > > > The ExampleFactory has a > constructor with no arguments and a default access level (no > modifiers). The same factory class also have several > non-static factory methods with default access level (no > modifier). > > > This error is seen for > aprox. 1-2 request a day out of a total of 750 000 requests. > All requests are running through the same > code-path.We are currently running WAS 8.5.5.1 > > > > Has anyone got any idea of what can be > wrong? > RegardsLars-Fredrik > Smedberg > > Origin: > javax.enterprise.inject.CreationException > > > Message: > java.lang.IllegalAccessException: Class > org.apache.webbeans.intercept.InvocationContextImpl can not > access a member of class com.example.ExampleFactory with > modifiers "" > > > Stacktrace: > javax.enterprise.inject.CreationException: > java.lang.IllegalAccessException: Class > org.apache.webbeans.intercept.InvocationContextImpl can not > access a member of class com.example.ExampleFactory with > modifiers "" > > at > > org.apache.webbeans.component.AbstractOwbBean.create(AbstractOwbBean.java:193) > at > > > org.apache.webbeans.context.creational.BeanInstanceBag.create(BeanInstanceBag.java:80) > > at > > org.apache.webbeans.context.AbstractContext.getInstance(AbstractContext.java:226) > at > org.apache.webbeans.context.AbstractContext.get(AbstractContext.java:191) > > at > > org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.getContextualInstance(NormalScopedBeanInterceptorHandler.java:135) > at > > > org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:95) > > at > > com.example.ExampleImpl_$$_javassist_20.getItems(ExampleImpl_$$_javassist_20.java) > at > com.example.ExampleResource.getItems(Unknown Source) > > at > sun.reflect.GeneratedMethodAccessor137.invoke(Unknown > Source) at > > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > > at > java.lang.reflect.Method.invoke(Method.java:607) at > > > org.apache.wink.server.internal.handlers.InvokeMethodHandler.handleRequest(InvokeMethodHandler.java:63) > > at > > org.apache.wink.server.handlers.AbstractHandler.handleRequest(AbstractHandler.java:33) > at > > > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26) > > at > > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22) > at > > > org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75) > > at > com.example.ExampleHandler1.handleRequest(Unknown > Source) at > sun.reflect.GeneratedMethodAccessor135.invoke(Unknown > Source) > > at > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at > java.lang.reflect.Method.invoke(Method.java:607) > > at > > org.apache.webbeans.intercept.InterceptorHandler.invoke(InterceptorHandler.java:297) > at > > > org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:98) > > at > > com.example.ExampleHandler1_$$_javassist_3.handleRequest(ExampleHandler1_$$_javassist_3.java) > at > > > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26) > > at > > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22) > at > > > org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75) > > at > com.example.ExampleHandler2.handleRequest(Unknown > Source) at > sun.reflect.GeneratedMethodAccessor133.invoke(Unknown > Source) > > at > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at > java.lang.reflect.Method.invoke(Method.java:607) > > at > > org.apache.webbeans.intercept.InterceptorHandler.invoke(InterceptorHandler.java:297) > at > > > org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:98) > > at > > com.example.ExampleHandler2_$$_javassist_2.handleRequest(ExampleHandler2_$$_javassist_2.java) > at > > > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26) > > at > > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22) > at > > > org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75) > > at > com.example.ExampleHandler3.handleRequest(Unknown > Source) at > sun.reflect.GeneratedMethodAccessor131.invoke(Unknown > Source) > > at > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at > java.lang.reflect.Method.invoke(Method.java:607) > > at > > org.apache.webbeans.intercept.InterceptorHandler.invoke(InterceptorHandler.java:297) > at > > > org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:98) > > at > > com.example.ExampleHandler3_$$_javassist_1.handleRequest(ExampleHandler3_$$_javassist_1.java) > at > > > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26) > > at > > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22) > at > > > org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75) > > at > > org.apache.wink.server.internal.handlers.CreateInvocationParametersHandler.handleRequest(CreateInvocationParametersHandler.java:54) > at > > > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26) > > at > > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22) > at > > > org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75) > > at > > org.apache.wink.server.handlers.AbstractHandler.handleRequest(AbstractHandler.java:34) > at > > > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26) > > at > > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22) > at > > > org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75) > > at > > org.apache.wink.server.internal.handlers.FindResourceMethodHandler.handleResourceMethod(FindResourceMethodHandler.java:151) > at > > > org.apache.wink.server.internal.handlers.FindResourceMethodHandler.handleRequest(FindResourceMethodHandler.java:65) > > at > > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26) > at > > > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22) > > at > > org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75) > at > > > org.apache.wink.server.internal.handlers.FindRootResourceHandler.handleRequest(FindRootResourceHandler.java:95) > > at > > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26) > at > > > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22) > > at > > org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75) > at > > > org.apache.wink.server.internal.handlers.HeadMethodHandler.handleRequest(HeadMethodHandler.java:53) > > at > > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26) > at > > > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22) > > at > > org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75) > at > > > org.apache.wink.server.internal.handlers.OptionsMethodWADLHandler.handleRequest(OptionsMethodWADLHandler.java:51) > > at > > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26) > at > > > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22) > > at > > org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75) > at > > > org.apache.wink.server.internal.handlers.SearchResultHandler.handleRequest(SearchResultHandler.java:33) > > at > > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26) > at > > > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22) > > at > > org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75) > at > > > org.apache.wink.server.internal.log.ResourceInvocation.handleRequest(ResourceInvocation.java:92) > > at > > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26) > at > > > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22) > > at > > org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75) > at > > org.apache.wink.server.internal.log.Requests.handleRequest(Requests.java:76) > > at > > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26) > at > > > org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22) > > at > > org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75) > at > > > org.apache.wink.server.handlers.AbstractHandlersChain.run(AbstractHandlersChain.java:60) > > at > > org.apache.wink.server.internal.RequestProcessor.handleRequestWithoutFaultBarrier(RequestProcessor.java:207) > at > > > org.apache.wink.server.internal.RequestProcessor.handleRequest(RequestProcessor.java:154) > > at > > org.apache.wink.server.internal.servlet.RestServlet.service(RestServlet.java:124) > at > > > > On Thu, May 15, 2014 at > 11:07 AM, Lars-Fredrik Smedberg <[email protected]> > wrote: > > > Hi! > > I tried > to package some "infastructure code" (CDI managed > beans) in a jar and deployed it in an EAR as a utility JAR. > The following exception was thrown: > Caused by: > com.ibm.wsspi.injectionengine.InjectionException: Unable to > obtain an instance for @Inject > java.lang.reflect.Field.nameProperty: > java.lang.IllegalAccessError: Class <our injected > class>_$$_javassist_12 illegally accessing "package > private" member of class <our injected > class> > > > at > > com.ibm.wsspi.injectionengine.InjectionBinding.getInjectionObject(InjectionBinding.java:1123) > at > > > com.ibm.wsspi.injectionengine.InjectionBinding.getInjectableObject(InjectionBinding.java:1032) > > > at > > com.ibm.wsspi.injectionengine.InjectionTarget.inject(InjectionTarget.java:125) > at > > > com.ibm.ws.injectionengine.AbstractInjectionEngine.inject(AbstractInjectionEngine.java:1084) > > > at > > com.ibm.wsspi.injectionengine.InjectionUtil.createInjectedInstance(InjectionUtil.java:174) > at > > > com.ibm.ws.websvcs.server.WSServiceInstanceFactory.createServiceInstance(WSServiceInstanceFactory.java:111) > > > at > > org.apache.axis2.jaxws.server.EndpointController.handleRequest(EndpointController.java:247) > ... 31 more > Caused by: java.lang.IllegalAccessError: Class<our > injected class>_$$_javassist_12 illegally accessing > "package private" member of class <our injected > class> at <our injected > > > class>_$$_javassist_12.<init>(CachingClasspathPropertyFileManager_$$_javassist_12.java) > > > at > java.lang.J9VMInternals.newInstanceImpl(Native > Method) at > java.lang.Class.newInstance(Class.java:1600) > at > > org.apache.webbeans.proxy.JavassistProxyFactory.createNormalScopedBeanProxy(JavassistProxyFactory.java:219) > at > > > org.apache.webbeans.container.BeanManagerImpl.getReference(BeanManagerImpl.java:870) > > > at > > org.apache.webbeans.container.BeanManagerImpl.getInjectableReference(BeanManagerImpl.java:777) > at > > > org.apache.webbeans.inject.AbstractInjectable.inject(AbstractInjectable.java:137) > > > at > > org.apache.webbeans.inject.InjectableMethods.doInjection(InjectableMethods.java:136) > at > > > org.apache.webbeans.component.ProducerMethodBean.createDefaultInstance(ProducerMethodBean.java:204) > > > at > > org.apache.webbeans.component.ProducerMethodBean.createInstance(ProducerMethodBean.java:166) > at > > > org.apache.webbeans.component.AbstractOwbBean.createNewInstance(AbstractOwbBean.java:216) > > > at > > org.apache.webbeans.portable.creation.AbstractProducer.produce(AbstractProducer.java:82) > at > > > org.apache.webbeans.component.InjectionTargetWrapper.produce(InjectionTargetWrapper.java:142) > > > at > > org.apache.webbeans.component.AbstractOwbBean.create(AbstractOwbBean.java:174) > at > > > org.apache.webbeans.context.DependentContext.getInstance(DependentContext.java:69) > > > at > org.apache.webbeans.context.AbstractContext.get(AbstractContext.java:191) > at > > > org.apache.webbeans.container.BeanManagerImpl.getReference(BeanManagerImpl.java:892) > > > at > > org.apache.webbeans.container.BeanManagerImpl.getInjectableReference(BeanManagerImpl.java:770) > at > > > com.ibm.ws.webbeans.services.IBMBeanManagerImpl.getInjectableReference(IBMBeanManagerImpl.java:186) > > > at > > com.ibm.ws.webbeans.services.InjectInjectionObjectFactory.getInjectableReference(InjectInjectionObjectFactory.java:315) > at > > > com.ibm.ws.webbeans.services.InjectInjectionObjectFactory.getObjectInstance(InjectInjectionObjectFactory.java:153) > > > at > > com.ibm.ws.webbeans.services.InjectInjectionBinding.getInjectionObjectInstance(InjectInjectionBinding.java:100) > at > > > com.ibm.wsspi.injectionengine.InjectionBinding.getInjectionObject(InjectionBinding.java:1093) > > > ... 37 > more > Where <our > injected class> is a class with constructor with default > access level.I tried to change the access level > of the constructor and only "public" made it > work. > > > > When I instead packaged the > jar in the WEB-INF/lib folder of the WAR everything was > working without changing the access level of the > constructor. > I looked > for problems with Javassist and found the following JIRA > https://issues.jboss.org/browse/WELD-737 > > > > Is this the problem we see > here? > RegardsLars-Fredrik > -- > Med vänlig hälsning > / Best regards > > > > Lars-Fredrik Smedberg > > STATEMENT OF CONFIDENTIALITY: > > The information contained in this electronic message and > any > attachments to this message are intended > for the exclusive use of the > address(es) and > may contain confidential or privileged information. If > you are not the intended recipient, please > notify Lars-Fredrik Smedberg > > > > immediately at [email protected], > and destroy all copies of this > message and > any attachments. > > > > > -- > Med vänlig hälsning / Best regards > > Lars-Fredrik Smedberg > > STATEMENT OF > CONFIDENTIALITY: > The information contained > in this electronic message and any > > > attachments to this message are intended for the exclusive > use of the > address(es) and may contain > confidential or privileged information. If > you are not the intended recipient, please > notify Lars-Fredrik Smedberg > > > immediately at [email protected], > and destroy all copies of this > message and > any attachments. > >
