Pablo, Does your code, looks like it's a test, start and register the MBean? Are you accessing the MBeam from a running JBoss AS7 instance or something? I feel like I'm missing some information.
The cause is that the Request scope isn't active when you're accessing the MBean. On Fri, Sep 26, 2014 at 3:46 AM, Pablo Pita <[email protected]> wrote: > Hello all, > > I am having a problem trying to use DeltaSpike JMX annotations in a > standalone main application. > > For my tests, I have taken MyMBean from DS sources. When looking into the > JMX console JConsole, I see that MyMBean is registered but when trying to > access the counter attribute, this exception comes: > > 26.09.2014 11:18:20 > org.apache.deltaspike.core.impl.jmx.DynamicMBeanWrapper > getAttribute > SCHWERWIEGEND: can't get counter value > java.lang.reflect.InvocationTargetException > 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.deltaspike.core.impl.jmx.AttributeAccessor.get(AttributeAccessor.java:46) > at > > org.apache.deltaspike.core.impl.jmx.DynamicMBeanWrapper.getAttribute(DynamicMBeanWrapper.java:249) > at > > com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttribute(DefaultMBeanServerInterceptor.java:666) > at > > com.sun.jmx.mbeanserver.JmxMBeanServer.getAttribute(JmxMBeanServer.java:638) > at > > javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1431) > at > > javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:74) > at > > javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1295) > at > > javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1387) > at > > javax.management.remote.rmi.RMIConnectionImpl.getAttribute(RMIConnectionImpl.java:630) > 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 sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:303) > at sun.rmi.transport.Transport$1.run(Transport.java:159) > at java.security.AccessController.doPrivileged(Native Method) > at sun.rmi.transport.Transport.serviceCall(Transport.java:155) > at > sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535) > at > > sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790) > at > > sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649) > at > > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) > at > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) > at java.lang.Thread.run(Thread.java:662) > Caused by: org.jboss.weld.context.ContextNotActiveException: WELD-001303 No > active contexts for scope type javax.enterprise.context.RequestScoped > at > org.jboss.weld.manager.BeanManagerImpl.getContext(BeanManagerImpl.java:608) > at > > org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:71) > at > > org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:104) > at > > org.jboss.weld.proxies.DynamicMockManager$-427240798$Proxy$_$$_WeldClientProxy.getMock(DynamicMockManager$-427240798$Proxy$_$$_WeldClientProxy.java) > at > > org.apache.deltaspike.testcontrol.impl.mock.MockAwareInjectionTargetWrapper.produce(MockAwareInjectionTargetWrapper.java:59) > at org.jboss.weld.bean.ManagedBean.create(ManagedBean.java:296) > at org.jboss.weld.context.AbstractContext.get(AbstractContext.java:103) > at > > org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:90) > at > > org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:79) > at > > com.jmx.ds.MyMBean$Proxy$_$$_WeldClientProxy.getCounter(MyMBean$Proxy$_$$_WeldClientProxy.java) > ... 27 more > > I wonder if there is something I am missing to properly setup this case. I > am on Windows running JDK 6 and Weld 1.1.18. > > > The main program I am using is as follows: > > public static void main(String[] args) throws Exception { > > CdiContainer cdiContainer = CdiContainerLoader.getCdiContainer(); > cdiContainer.boot(); > > // Starting the application-context and request-context allows to > use > // @ApplicationScoped and @RequestScoped beans > ContextControl contextControl = cdiContainer.getContextControl(); > contextControl.startContext(ApplicationScoped.class); > contextControl.startContext(RequestScoped.class); > > // we can use CDI here > while (running) { > int i = 0; > i = i + 1; > Thread.sleep(50); > } > cdiContainer.shutdown(); > } > > Thanks for any feedback, > -- > Pablo Pita Leira > -- Jason Porter http://en.gravatar.com/lightguardjp
