-
1. Re: @postconstruct method not running
samjaya Jul 28, 2011 2:49 AM (in response to samjaya)This is the stack trace
java.lang.RuntimeException: Could not invoke PostConstruct on the newly created bean instance
at org.jboss.ejb3.singleton.impl.container.SingletonEJBInstanceManagerImpl.create(SingletonEJBInstanceManagerImpl.java:137)
at org.jboss.ejb3.singleton.impl.container.SingletonEJBInstanceManagerImpl.get(SingletonEJBInstanceManagerImpl.java:152)
at org.jboss.ejb3.singleton.impl.container.SingletonContainer.invoke(SingletonContainer.java:201)
at org.jboss.ejb3.singleton.aop.impl.AOPBasedSingletonContainer.invoke(AOPBasedSingletonContainer.java:474)
at org.jboss.ejb3.nointerface.impl.invocationhandler.NoInterfaceViewInvocationHandler.invokeEndpoint(NoInterfaceViewInvocationHandler.java:143)
at org.jboss.ejb3.nointerface.impl.invocationhandler.NoInterfaceViewInvocationHandler.access$000(NoInterfaceViewInvocationHandler.java:54)
at org.jboss.ejb3.nointerface.impl.invocationhandler.NoInterfaceViewInvocationHandler$1.invoke(NoInterfaceViewInvocationHandler.java:103)
at org.jboss.ejb3.sis.reflect.InterceptorInvocationHandler$1.proceed(InterceptorInvocationHandler.java:84)
at org.jboss.ejb3.sis.InterceptorAssembly$1.proceed(InterceptorAssembly.java:82)
at org.jboss.ejb3.nointerface.impl.async.AsyncClientInterceptor.invoke(AsyncClientInterceptor.java:119)
at org.jboss.ejb3.sis.InterceptorAssembly$1.proceed(InterceptorAssembly.java:74)
at org.jboss.ejb3.nointerface.impl.invocationhandler.ObjectMethodsInterceptor.invoke(ObjectMethodsInterceptor.java:78)
at org.jboss.ejb3.sis.InterceptorAssembly$1.proceed(InterceptorAssembly.java:74)
at org.jboss.ejb3.sis.InterceptorAssembly.invoke(InterceptorAssembly.java:90)
at org.jboss.ejb3.sis.reflect.InterceptorInvocationHandler.invoke(InterceptorInvocationHandler.java:110)
at org.jboss.ejb3.nointerface.impl.invocationhandler.NoInterfaceViewInvocationHandler.invoke(NoInterfaceViewInvocationHandler.java:115)
at org.jboss.ejb3.proxy.javassist.JavassistInvocationHandlerAdapter.invoke(JavassistInvocationHandlerAdapter.java:71)
at xxxxxxxxxxxxxxxxxxxxxxxx_$$_javassist_40.getSession(DroolsKnowledgeBase_$$_javassist_40.java)
at org.jboss.weld.util.reflection.SecureReflections$13.work(SecureReflections.java:305)
at org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureReflectionAccess.java:54)
at org.jboss.weld.util.reflection.SecureReflectionAccess.runAsInvocation(SecureReflectionAccess.java:163)
at org.jboss.weld.util.reflection.SecureReflections.invoke(SecureReflections.java:299)
at org.jboss.weld.bean.proxy.EnterpriseBeanProxyMethodHandler.invoke(EnterpriseBeanProxyMethodHandler.java:126)
at org.jboss.weld.bean.proxy.EnterpriseTargetBeanInstance.invoke(EnterpriseTargetBeanInstance.java:62)
at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:125)
at xxxxxxxxxxxxxxxxxx.org$jboss$weld$bean-jboss$classloader:id="vfs:$$$F:$jboss-6$0$0$Final$server$default$deploy$test$war"-SessionBean-DroolsKnowledgeBase_$$_WeldProxy.getSession(org$jboss$weld$bean-jboss$classloader:id="vfs:$$$F:$jboss-6$0$0$Final$server$default$deploy$test$war"-SessionBean-DroolsKnowledgeBase_$$_WeldProxy.java)
at se.xxxxxxxxxx.biz.business.TestRuleEngineFacade.setUp(TestRuleEngineFacade.java:112)
at org.jboss.arquillian.junit.Arquillian$StatementLifecycleExecutor.invoke(Arquillian.java:340)
at org.jboss.arquillian.impl.execution.BeforeLifecycleEventExecuter.execute(BeforeLifecycleEventExecuter.java:45)
at org.jboss.arquillian.impl.execution.BeforeLifecycleEventExecuter.on(BeforeLifecycleEventExecuter.java:40)
at org.jboss.arquillian.impl.core.ObserverImpl.invoke(ObserverImpl.java:90)
at org.jboss.arquillian.impl.core.EventContextImpl.invokeObservers(EventContextImpl.java:98)
at org.jboss.arquillian.impl.core.EventContextImpl.proceed(EventContextImpl.java:80)
at org.jboss.arquillian.impl.TestContextHandler.createClassContext(TestContextHandler.java:68)
at org.jboss.arquillian.impl.core.ObserverImpl.invoke(ObserverImpl.java:90)
at org.jboss.arquillian.impl.core.EventContextImpl.proceed(EventContextImpl.java:87)
at org.jboss.arquillian.impl.TestContextHandler.createSuiteContext(TestContextHandler.java:54)
at org.jboss.arquillian.impl.core.ObserverImpl.invoke(ObserverImpl.java:90)
at org.jboss.arquillian.impl.core.EventContextImpl.proceed(EventContextImpl.java:87)
at org.jboss.arquillian.impl.TestContextHandler.createTestContext(TestContextHandler.java:82)
at org.jboss.arquillian.impl.core.ObserverImpl.invoke(ObserverImpl.java:90)
at org.jboss.arquillian.impl.core.EventContextImpl.proceed(EventContextImpl.java:87)
at org.jboss.arquillian.impl.core.ManagerImpl.fire(ManagerImpl.java:126)
at org.jboss.arquillian.impl.core.ManagerImpl.fire(ManagerImpl.java:106)
at org.jboss.arquillian.impl.EventTestRunnerAdaptor.before(EventTestRunnerAdaptor.java:85)
at org.jboss.arquillian.junit.Arquillian$4.evaluate(Arquillian.java:210)
at org.jboss.arquillian.junit.Arquillian.multiExecute(Arquillian.java:303)
at org.jboss.arquillian.junit.Arquillian.access$300(Arquillian.java:45)
at org.jboss.arquillian.junit.Arquillian$5.evaluate(Arquillian.java:228)
at org.jboss.arquillian.junit.Arquillian$2.evaluate(Arquillian.java:173)
at org.jboss.arquillian.junit.Arquillian.multiExecute(Arquillian.java:303)
at org.jboss.arquillian.junit.Arquillian.access$300(Arquillian.java:45)
at org.jboss.arquillian.junit.Arquillian$3.evaluate(Arquillian.java:187)
at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:127)
at org.jboss.arquillian.junit.JUnitTestRunner.execute(JUnitTestRunner.java:69)
at org.jboss.arquillian.protocol.servlet.runner.ServletTestRunner.doGet(ServletTestRunner.java:84)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:324)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242)
at org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:67)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:181)
at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.event(CatalinaContext.java:285)
at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.invoke(CatalinaContext.java:261)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:88)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:100)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.invoke(ActiveRequestResponseCacheValve.java:53)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:654)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.RuntimeException: java.lang.NullPointerException
at org.jboss.ejb3.singleton.aop.impl.AOPBasedSingletonContainer.invokeCallback(AOPBasedSingletonContainer.java:1063)
at org.jboss.ejb3.EJBContainer.invokePostConstruct(EJBContainer.java:1396)
at org.jboss.ejb3.singleton.aop.impl.AOPBasedSingletonContainer.postConstruct(AOPBasedSingletonContainer.java:760)
at org.jboss.ejb3.singleton.impl.container.SingletonEJBInstanceManagerImpl.create(SingletonEJBInstanceManagerImpl.java:133)
Caused by: java.lang.NullPointerException
at org.jboss.ejb3.EJBContainer.getApplicationException(EJBContainer.java:509)
at org.jboss.ejb3.singleton.aop.impl.ConstructionInvocationContextAdapter.getApplicationException(ConstructionInvocationContextAdapter.java:62)
at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.handleExceptionInOurTx(CMTTxInterceptor.java:163)
at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:251)
at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.requiresNew(CMTTxInterceptor.java:392)
at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invoke(CMTTxInterceptor.java:211)
at org.jboss.ejb3.tx2.aop.CMTTxInterceptorWrapper.invoke(CMTTxInterceptorWrapper.java:52)
at org.jboss.aop.joinpoint.ConstructionInvocation.invokeNext(ConstructionInvocation.java:80)
at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
at org.jboss.aop.joinpoint.ConstructionInvocation.invokeNext(ConstructionInvocation.java:80)
at org.jboss.ejb3.core.context.CurrentInvocationContextInterceptor.invoke(CurrentInvocationContextInterceptor.java:47)
at org.jboss.aop.joinpoint.ConstructionInvocation.invokeNext(ConstructionInvocation.java:80)
at org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.setup(InvocationContextInterceptor.java:90)
at org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor_z_setup_23710924.invoke(InvocationContextInterceptor_z_setup_23710924.java)
at org.jboss.aop.joinpoint.ConstructionInvocation.invokeNext(ConstructionInvocation.java:80)
at org.jboss.aspects.currentinvocation.CurrentInvocationInterceptor.invoke(CurrentInvocationInterceptor.java:67)
at org.jboss.aop.joinpoint.ConstructionInvocation.invokeNext(ConstructionInvocation.java:80)
at org.jboss.ejb3.singleton.aop.impl.AOPBasedSingletonContainer.invokeCallback(AOPBasedSingletonContainer.java:1059)
-
2. Re: @postconstruct method not running
aslak Jun 21, 2011 10:05 AM (in response to samjaya)Could you provide a simple project/test showing the error?
-
3. Re: @postconstruct method not running
samjaya Jun 22, 2011 8:05 AM (in response to aslak)@Singleton
@LocalBean
public class SomeClass {
private static KnowledgeBase kBase = null;
@PostConstruct
private void init(){
logger.info("Initiating Drools Engine");
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
kbuilder.add(ResourceFactory.newClassPathResource(DRL_PATH), ResourceType.DRL);
kBase = KnowledgeBaseFactory.newKnowledgeBase();
kBase.addKnowledgePackages(kbuilder.getKnowledgePackages());
logger.info("Drools Engine initialized.");
}
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
public StatelessKnowledgeSession getSession() throws DroolsEngineException {
if (kBase == null) {
throw new SomeException(".... Engine is not initialized.");
}
return kBase.newStatelessKnowledgeSession();
}
^^^This is the class with the @postConstruct method.
The bold lettered exception is what i get.
==============================================================================================================
@Stateless
@LocalBean
public class SomeFacade {
@Inject
private SomeClass kBase;
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
public Foo validate(List<InputItem> inputItems) throws SomeException {
StatelessKnowledgeSession kSession = kBase.getSession();
.... more ...
^^^ This is the facade. The bold lettered place is the place with the exception.
============================================================================================================
@Inject
SomeFacade facade;
@Inject
someClass kbase;
@Test
public void testPassingValidation(){
try {
rvem= ruleEngineFacade.validate(mockInputItems);
} catch (SomeException ex) {
Logger.getLogger(TestRuleEngineFacade.class.getName()).log(Level.SEVERE, null, ex);
}
assertFalse(rvem.hasRuleValidationError());
}
^^^this is the relevant portions of the test. The bold lettered place is the place with the exception. please refer the stack trace.
-
4. Re: @postconstruct method not running
rhinmass Jun 28, 2011 1:21 PM (in response to samjaya)I am actually having the same, or a similar, problem:
@Singleton
public class SomeClass
{
public SomeClass()
{
System.out.println("SomeClass Constructor " );
}
@PostConstruct
public void postConstruct()
{
try {
System.out.println("SomeClass postConstruct " );
} finally {
}
}
}
I see the message "SomeClass constructor" printed, but not "SomeClass postConstruct". Should this work?
-
5. Re: @postconstruct method not running
rhinmass Jun 29, 2011 8:43 AM (in response to rhinmass)In my case, the problem is due to lazy initialization. I added @Startup (after @Singleton) and it works as I expected.
For the original problem, have you tried making init() public ?
-
6. Re: @postconstruct method not running
rhinmass Jun 29, 2011 8:47 AM (in response to rhinmass)Also, have you tried adding a no-arg constructor?
-
7. Re: @postconstruct method not running
wizjaa Mar 14, 2013 4:18 AM (in response to samjaya)I have this same problem, what is the solution? How from arquillian test call postconstruct method?