1 Reply Latest reply on Jan 11, 2012 8:37 AM by richyclarke

    "Service Tracker has not been initialized" error when using CDI Push

    richyclarke

      Hello.

       

       

       

      My environment is Richfaces 4.1.0.Final under JBOSS AS 6.1.0.Final, with Mojarra 2.1.2 and Seam 3.

       

      I am trying to get the new CDI version of Richfaces Push component to work but I have come up against a problem which I hope someone can help me resolve. I am following section 3.8.6. 'Using Push without JMS' from the component reference guide here...

       

      http://docs.jboss.org/richfaces/latest_4_1_X/Component_Reference/en-US/html/chap-Component_Reference-Actions.html#sect-Component_Reference-Actions-a4jpush

       

      I have added the following context parameter to my web.xml;

       

      <context-param>
          <param-name>org.richfaces.push.jms.disable</param-name>
          <param-value>true</param-value>
      </context-param>

       

       

      My PushBean.java code is shown below, but I get an error on the getOrCreateTopic call stating that the Service Tracker has not been initialized (stack trace below)

       

      There is a note stating;

       

      Using the TopicsContext requires the FacesContext instance to be available in the current thread.

      The method TopicsContext.lookup() can be called only in the context of a web application class loader (ServiceTracker needs to be accessible for given application).

       

      Which refers to Service Tracker, however I am unable to identify what I am doing wrong.

      Can anyone offer any assistance?

       

       

      PushBean.java

      -----------------------

       

      package com.vesey.searchpoint.push;

       

      import java.io.Serializable;

      import java.util.UUID;

       

      import javax.annotation.PostConstruct;

      import javax.enterprise.context.SessionScoped;

      import javax.enterprise.event.Event;

      import javax.faces.context.FacesContext;

      import javax.inject.Inject;

      import javax.inject.Named;

      import org.richfaces.application.push.Topic;

      import org.richfaces.application.push.TopicKey;

      import org.richfaces.application.push.TopicsContext;

      import org.richfaces.application.push.impl.DefaultMessageDataSerializer;

       

      import org.richfaces.cdi.push.Push;

       

      @Named

      @SessionScoped

      public class PushBean implements Serializable {

       

          private static final long serialVersionUID = 1L;

          public static final String PUSH_CDI_TOPIC = "pushCdi";

       

          private String userIdentifier;

          private String message;

          @Inject

          transient FacesContext facesContext;

          

          @Inject

          @Push(topic = PUSH_CDI_TOPIC, subtopic = "#{pushBean.userIdentifier}")

          Event<String> pushEvent;

       

          @PostConstruct

          public void initialize() {

              if (userIdentifier == null) {

                  userIdentifier = getUUID().replace("-", "");

              }

             

              TopicsContext topicsContext = TopicsContext.lookup();

              Topic pushJmsTopic = topicsContext.getOrCreateTopic(new TopicKey(PUSH_CDI_TOPIC));

              pushJmsTopic.setMessageDataSerializer(DefaultMessageDataSerializer.instance());

          }

       

          /**

           * Sends message.

           *

           * @param message to send

           */

          public void sendMessage() {

              pushEvent.fire(message);

          }

       

              /**

           * Generates unique ID as string.

           * @return unique ID as string.

           */

          public String getUUID() {

              return UUID.randomUUID().toString();

          }

         

          /**

           * Returns current user identifier.

           *

           * @return current user identifier.

           */

          public String getUserIdentifier() {

              return userIdentifier;

          }

       

          public String getMessage() {

              return message;

          }

       

          public void setMessage(String message) {

              this.message = message;

          }

      }

       

       

      Error Log...

       

      2012-01-09 21:12:05,060 SEVERE [javax.faces.event] (http-127.0.0.1-8080-32) javax.ejb.EJBTransactionRolledbackException: Service Tracker has not been initialized

                at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.handleInCallerTx(CMTTxInterceptor.java:148)

                at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invokeInCallerTx(CMTTxInterceptor.java:227)

                at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.required(CMTTxInterceptor.java:353)

                at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invoke(CMTTxInterceptor.java:209)

                at org.jboss.ejb3.tx2.aop.CMTTxInterceptorWrapper.invoke(CMTTxInterceptorWrapper.java:52)

                at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)

                at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)

                at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)

                at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42)

                at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)

                at org.jboss.ejb3.security.Ejb3AuthenticationInterceptorv2.invoke(Ejb3AuthenticationInterceptorv2.java:182)

                at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)

                at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:41)

                at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)

                at org.jboss.ejb3.BlockContainerShutdownInterceptor.invoke(BlockContainerShutdownInterceptor.java:67)

                at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)

                at org.jboss.ejb3.core.context.CurrentInvocationContextInterceptor.invoke(CurrentInvocationContextInterceptor.java:47)

                at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)

                at org.jboss.aspects.currentinvocation.CurrentInvocationInterceptor.invoke(CurrentInvocationInterceptor.java:67)

                at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)

                at org.jboss.ejb3.interceptor.EJB3TCCLInterceptor.invoke(EJB3TCCLInterceptor.java:86)

                at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)

                at org.jboss.ejb3.session.SessionSpecContainer.invoke(SessionSpecContainer.java:333)

                at org.jboss.ejb3.session.SessionSpecContainer.invoke(SessionSpecContainer.java:158)

                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 com.vesey.searchpoint.session.SessionTracker_$$_javassist_79.triggerPush(SessionTracker_$$_javassist_79.java)

                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

                at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

                at java.lang.reflect.Method.invoke(Method.java:597)

                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:125)

                at org.jboss.weld.bean.proxy.EnterpriseTargetBeanInstance.invoke(EnterpriseTargetBeanInstance.java:62)

                at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:125)

                at com.vesey.searchpoint.session.SessionTracker$Proxy$_$$_Weld$Proxy$.triggerPush(SessionTracker$Proxy$_$$_Weld$Proxy$.java)

                at com.vesey.searchpoint.session.SessionTracker$Proxy$_$$_WeldClientProxy.triggerPush(SessionTracker$Proxy$_$$_WeldClientProxy.java)

                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

                at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

                at java.lang.reflect.Method.invoke(Method.java:597)

                at org.apache.el.parser.AstValue.invoke(AstValue.java:196)

                at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)

                at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:43)

                at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:56)

                at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:43)

                at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:56)

                at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:153)

                at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)

                at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:769)

                at javax.faces.component.UICommand.broadcast(UICommand.java:300)

                at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)

                at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)

                at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)

                at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)

                at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)

                at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)

                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 figlo.ScriptCollectorFilter.doFilter(ScriptCollectorFilter.java:121)

                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:161)

                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:159)

                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: javax.faces.FacesException: Service Tracker has not been initialized

                at org.richfaces.application.ServiceTracker.getServicesFactory(ServiceTracker.java:100)

                at org.richfaces.application.ServiceTracker.getService(ServiceTracker.java:81)

                at org.richfaces.application.push.TopicsContext.lookup(TopicsContext.java:79)

                at org.richfaces.cdi.push.producer.TopicsContextProducer.getTopicsContext(TopicsContextProducer.java:44)

                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

                at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

                at java.lang.reflect.Method.invoke(Method.java:597)

                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.introspector.jlr.WeldMethodImpl.invokeOnInstance(WeldMethodImpl.java:188)

                at org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstance(MethodInjectionPoint.java:169)

                at org.jboss.weld.bean.ProducerMethod$1.produce(ProducerMethod.java:149)

                at org.jboss.weld.bean.AbstractProducerBean.create(AbstractProducerBean.java:361)

                at org.jboss.weld.context.AbstractContext.get(AbstractContext.java:122)

                at org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:99)

                at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:87)

                at org.richfaces.application.push.TopicsContext$Proxy$_$$_WeldClientProxy.publish(TopicsContext$Proxy$_$$_WeldClientProxy.java)

                at org.richfaces.cdi.push.PushCDIExtension$PushObserverMethod.notify(PushCDIExtension.java:144)

                at org.jboss.weld.manager.BeanManagerImpl.notifyObservers(BeanManagerImpl.java:635)

                at org.jboss.weld.manager.BeanManagerImpl.fireEvent(BeanManagerImpl.java:628)

                at org.jboss.weld.event.EventImpl.fire(EventImpl.java:75)

                at com.vesey.searchpoint.push.PushBean.sendMessage(PushBean.java:78)

                at com.vesey.searchpoint.push.PushBean$Proxy$_$$_WeldClientProxy.sendMessage(PushBean$Proxy$_$$_WeldClientProxy.java)

                at com.vesey.searchpoint.session.SessionTracker.triggerPush(SessionTracker.java:2276)

                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

                at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

                at java.lang.reflect.Method.invoke(Method.java:597)

                at org.jboss.aop.joinpoint.MethodInvocation.invokeTarget(MethodInvocation.java:122)

                at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:111)

                at org.jboss.ejb3.interceptors.container.ContainerMethodInvocationWrapper.invokeNext(ContainerMethodInvocationWrapper.java:72)

                at org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor$InvocationContext.proceed(InvocationContextInterceptor.java:127)

                at org.jboss.weld.integration.ejb.interceptor.Jsr299BindingsInterceptor.delegateInterception(Jsr299BindingsInterceptor.java:169)

                at org.jboss.weld.integration.ejb.interceptor.Jsr299BindingsInterceptor.doMethodInterception(Jsr299BindingsInterceptor.java:147)

                at org.jboss.weld.integration.ejb.interceptor.Jsr299BindingsInterceptor.doAroundInvoke(Jsr299BindingsInterceptor.java:122)

                at sun.reflect.GeneratedMethodAccessor577.invoke(Unknown Source)

                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

                at java.lang.reflect.Method.invoke(Method.java:597)

                at org.jboss.ejb3.interceptors.aop.EJB3InterceptorInterceptor.invoke(EJB3InterceptorInterceptor.java:80)

                at org.jboss.ejb3.interceptors.aop.EJB3InterceptorInterceptor.invoke(EJB3InterceptorInterceptor.java:71)

                at org.jboss.ejb3.interceptors.container.ContainerMethodInvocationWrapper.invokeNext(ContainerMethodInvocationWrapper.java:62)

                at org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor$InvocationContext.proceed(InvocationContextInterceptor.java:127)

                at org.jboss.weld.ejb.SessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:46)

                at org.jboss.weld.integration.deployer.metadata.WeldLifecycleInterceptor.doAroundInvoke(WeldLifecycleInterceptor.java:55)

                at sun.reflect.GeneratedMethodAccessor576.invoke(Unknown Source)

                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

                at java.lang.reflect.Method.invoke(Method.java:597)

                at org.jboss.ejb3.interceptors.aop.EJB3InterceptorInterceptor.invoke(EJB3InterceptorInterceptor.java:80)

                at org.jboss.ejb3.interceptors.aop.EJB3InterceptorInterceptor.invoke(EJB3InterceptorInterceptor.java:71)

                at org.jboss.ejb3.interceptors.container.ContainerMethodInvocationWrapper.invokeNext(ContainerMethodInvocationWrapper.java:62)

                at org.jboss.ejb3.interceptors.aop.InterceptorSequencer.invoke(InterceptorSequencer.java:76)

                at org.jboss.ejb3.interceptors.aop.InterceptorSequencer.aroundInvoke(InterceptorSequencer.java:62)

                at sun.reflect.GeneratedMethodAccessor575.invoke(Unknown Source)

                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

                at java.lang.reflect.Method.invoke(Method.java:597)

                at org.jboss.aop.advice.PerJoinpointAdvice.invoke(PerJoinpointAdvice.java:174)

                at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)

                at org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.fillMethod(InvocationContextInterceptor.java:74)

                at org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor_z_fillMethod_1964624428.invoke(InvocationContextInterceptor_z_fillMethod_1964624428.java)

                at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)

                at org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.setup(InvocationContextInterceptor.java:90)

                at org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor_z_setup_1964624428.invoke(InvocationContextInterceptor_z_setup_1964624428.java)

                at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)

                at org.jboss.ejb3.async.impl.interceptor.AsynchronousServerInterceptor.invoke(AsynchronousServerInterceptor.java:128)

                at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)

                at org.jboss.ejb3.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:62)

                at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)

                at org.jboss.ejb3.entity.ExtendedPersistenceContextPropagationInterceptor.invoke(ExtendedPersistenceContextPropagationInterceptor.java:60)

                at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)

                at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:56)

                at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)

                at org.jboss.ejb3.stateful.SessionSynchronizationInterceptor.invoke(SessionSynchronizationInterceptor.java:252)

                at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)

                at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47)

                at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)

                at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42)

                at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)

                at org.jboss.ejb3.stateful.StatefulCacheInterceptor.invoke(StatefulCacheInterceptor.java:65)

                at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)

                at org.jboss.ejb3.concurrency.aop.interceptor.ContainerManagedConcurrencyInterceptor.invoke(ContainerManagedConcurrencyInterceptor.java:181)

                at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:86)

                at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)

                at org.jboss.ejb3.stateful.StatefulInstanceAssociationInterceptor.invoke(StatefulInstanceAssociationInterceptor.java:55)

                at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)

                at org.jboss.ejb3.core.context.SessionInvocationContextAdapter.proceed(SessionInvocationContextAdapter.java:95)

                at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invokeInCallerTx(CMTTxInterceptor.java:223)

                ... 94 more

        • 1. Re: "Service Tracker has not been initialized" error when using CDI Push
          richyclarke

          This has been resolved.

           

          I was overlooking the IllegalArguementException which prededed the " Service Tracker has not been initialized" message.

           

          This is the same issue (I think) as experienced here;

           

          http://community.jboss.org/message/645435

           

          The following line in my receiver XHTML file referred to #{userIdentifier} rather than #{pushBean.userIdentifier}:

           

          <a4j:push address="#{userIdentifier}@pushCdi" ondataavailable="alert('Got message: ' + event.rf.data)" />

           

          Once I had corrected this mistake, the page loaded without error, however the consumer is still not receiving messages. I eventually got it working by adding the following lines into my PushBean initializer method as suggested here..http://community.jboss.org/message/640417

           

                  TopicsContext topicsContext = TopicsContext.lookup();

                  Topic pushJmsTopic = topicsContext.getOrCreateTopic(new TopicKey(PUSH_CDI_TOPIC));

                  pushJmsTopic.setMessageDataSerializer(DefaultMessageDataSerializer.instance());       

           

          Hope this helps others.

          1 of 1 people found this helpful