重新启动Jboss将在我将我创建的服务(MBean)添加到Jboss部署路由时出错

重新启动Jboss将在我将我创建的服务(MBean)添加到Jboss部署路由时出错,jboss,service,jakarta-ee,snmp,mbeans,Jboss,Service,Jakarta Ee,Snmp,Mbeans,我创建了一个服务(MBean),我认为它可以正常启动/停止。 我的MBean在结构中,正如我之前的问题所说: 但是今天,我发现重新启动jboss时创建的服务会出错。 首先,可以将创建的服务(我的snmp代理的sar文件)放入jboss的部署路由中。我发现它确实有效,在我的代码中,snmp代理将启动并侦听端口。 但是当我重新启动jboss时会出现错误。如果我重新启动jboss,我将得到错误: startup taking too long, not getting a response on

我创建了一个服务(MBean),我认为它可以正常启动/停止。 我的MBean在结构中,正如我之前的问题所说:

但是今天,我发现重新启动jboss时创建的服务会出错。 首先,可以将创建的服务(我的snmp代理的sar文件)放入jboss的部署路由中。我发现它确实有效,在我的代码中,snmp代理将启动并侦听端口。 但是当我重新启动jboss时会出现错误。如果我重新启动jboss,我将得到错误:

 startup taking too long, not getting a response on 127.0.0.1:8081, giving up
然后再次重启jboss,会出现如下错误:

Exception in thread "main" javax.management.RuntimeMBeanException
        at org.jboss.mx.interceptor.ReflectedDispatcher.handleInvocationExceptions(ReflectedDispatcher.java:162)
        at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:149)
        at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
        at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
        at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:245)
        at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
        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:585)
        at org.jboss.jmx.connector.invoker.InvokerAdaptorService.invoke(InvokerAdaptorService.java:251)
        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:585)
        at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141)
        at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
        at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:118)
        at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
        at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:127)
        at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
        at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:245)
        at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
        at org.jboss.invocation.jrmp.server.JRMPProxyFactory.invoke(JRMPProxyFactory.java:164)
        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:585)
        at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141)
        at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
        at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
        at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:245)
        at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
        at org.jboss.invocation.jrmp.server.JRMPInvoker$MBeanServerAction.invoke(JRMPInvoker.java:805)
        at org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:406)
        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:585)
        at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)
        at sun.rmi.transport.Transport$1.run(Transport.java:153)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
        at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466)
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)
        at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.IllegalStateException: not started
        at org.jboss.system.server.ServerImpl.shutdown(ServerImpl.java:617)
        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:585)
        at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141)
        ... 44 more
我试过了,但找不到问题所在,但失败了。 有人能帮我吗?
非常感谢

看起来您的MBean没有正确启动。我想知道为什么您需要以下代码:

public void startService()throws Exception{
    ...skipped...
->  Thread.currentThread().join();
}
您对Thread.currentThread().join()所说的内容;是“使当前线程等待直到当前线程死亡(请参阅)”。这意味着线程JBossAS调用您的MBean时永远不会返回。因此

startup taking too long, not getting a response on 127.0.0.1:8081, giving up

您试图通过Thread.currentThread().join()实现的任何特定目标

Georgy Bolyuba非常感谢你的详细分析。它确实帮助我解决了这个问题。事实上,我编写的MBean最初是作为jdk程序设计的。我想把它改成MBean,这样就可以由jboss启动了。我没有意识到Thread.currentThread().join()将影响jboss。再次感谢你的帮助!