Java weblogic.rjvm.PeerGoneException:;嵌套异常

Java weblogic.rjvm.PeerGoneException:;嵌套异常,java,jmx,weblogic-10.x,weblogic12c,Java,Jmx,Weblogic 10.x,Weblogic12c,我使用以下代码使用Java和JMX关闭WebLogic: MBeanServerConnection connection; JMXConnector connector; ObjectName service = new ObjectName("com.bea:Name=DomainRuntimeService,Type=weblogic.management.mbeanservers.domainruntime.DomainRuntimeSer

我使用以下代码使用Java和JMX关闭WebLogic:

MBeanServerConnection connection;
            JMXConnector connector;
            ObjectName service = new ObjectName("com.bea:Name=DomainRuntimeService,Type=weblogic.management.mbeanservers.domainruntime.DomainRuntimeServiceMBean");

            String hostname = "21.231.70.123";
            int port = 7001;
            String username = "test";
            String password = "4r3";
            String protocol = "t3";

            String jndiroot = "/jndi/";
            String mserver = "weblogic.management.mbeanservers.domainruntime";
            JMXServiceURL serviceURL = new JMXServiceURL(protocol, hostname, port, jndiroot + mserver);
            Hashtable h = new Hashtable();
            h.put(Context.SECURITY_PRINCIPAL, username);
            h.put(Context.SECURITY_CREDENTIALS, password);
            h.put(JMXConnectorFactory.PROTOCOL_PROVIDER_PACKAGES, "weblogic.management.remote");
            connector = JMXConnectorFactory.connect(serviceURL, h);
            connection = connector.getMBeanServerConnection();

            ObjectName[] serverRT = (ObjectName[]) connection.getAttribute(service, "ServerRuntimes");

            for (int i = 0; i < serverRT.length; i++)
            {
                String name = (String) connection.getAttribute(serverRT[i], "Name");
//                if (!name.equals("AdminServer"))
//                {
                System.out.println("Server Name : " + name + " shutting down");
                Object obj = connection.invoke(serverRT[i], "forceShutdown", null, null);
                System.out.println("Server Name : " + name + " down now.");
//                }
            }

            connector.close();
你能给我一些建议如何解决这个问题吗


是否有解决此问题的其他解决方案?

对此不确定,但在调用
connector.close()
之前,您可能需要等待?代码的第95行是什么?这是第95行
connector.close()
,即使出现异常,Weblogic服务器是否也在关闭?是的,它正在关闭。
Running org.weblogic.engine.osgi.impl.eeeeeeeeeTest
Server Name : AdminServer shutting down
Server Name : AdminServer down now.
weblogic.rjvm.PeerGoneException: ; nested exception is: 
    weblogic.utils.net.SocketResetException
    at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:237)
    at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:223)
    at javax.management.remote.rmi.RMIConnectionImpl_1036_WLStub.close(Unknown Source)
    at weblogic.management.remote.common.RMIConnectionWrapper.close(ClientProviderBase.java:433)
    at javax.management.remote.rmi.RMIConnector.close(RMIConnector.java:505)
    at javax.management.remote.rmi.RMIConnector.close(RMIConnector.java:445)
    at weblogic.management.remote.common.WLSRMIConnector.doClose(WLSRMIConnector.java:177)
    at weblogic.management.remote.common.WLSRMIConnector.access$300(WLSRMIConnector.java:29)
    at weblogic.management.remote.common.WLSRMIConnector$3.run(WLSRMIConnector.java:160)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:146)
    at weblogic.security.Security.runAs(Security.java:61)
    at weblogic.management.remote.common.WLSRMIConnector.close(WLSRMIConnector.java:157)
    at org.weblogic.engine.osgi.impl.eeeeeeeeeTest.testConnectionWebLogicShutdown(eeeeeeeeeTest.java:95)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at junit.framework.TestCase.runTest(TestCase.java:176)
    at junit.framework.TestCase.runBare(TestCase.java:141)
    at junit.framework.TestResult$1.protect(TestResult.java:122)
    at junit.framework.TestResult.runProtected(TestResult.java:142)
    at junit.framework.TestResult.run(TestResult.java:125)
    at junit.framework.TestCase.run(TestCase.java:129)
    at junit.framework.TestSuite.runTest(TestSuite.java:252)
    at junit.framework.TestSuite.run(TestSuite.java:247)
    at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:86)
    at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:283)
    at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:173)
    at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
    at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:128)
    at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
    at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
Caused by: weblogic.utils.net.SocketResetException
    at weblogic.socket.SocketMuxer.readReadySocketOnce(SocketMuxer.java:933)
    at weblogic.socket.SocketMuxer.readReadySocket(SocketMuxer.java:889)
    at weblogic.socket.JavaSocketMuxer.processSockets(JavaSocketMuxer.java:339)
    at weblogic.socket.SocketReaderRequest.run(SocketReaderRequest.java:29)
    at weblogic.work.ExecuteRequestAdapter.execute(ExecuteRequestAdapter.java:21)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:145)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:117)