Jmeter分布式执行,java.rmi.UnmarshalException: xxxAbstractSimpleThreadGroup错误

587 阅读1分钟

问题如下


使用Stepping Thread Group线程组模型报错

出现错误

日志文件 中错误内容

java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: 
	java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: 
	java.io.InvalidClassException: kg.apc.jmeter.threads.AbstractSimpleThreadGroup; local class incompatible: stream classdesc serialVersionUID = -2405554363432379872, local class serialVersionUID = 2316774539843805545
	at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:389) ~[?:1.8.0_241]
	at sun.rmi.transport.Transport$1.run(Transport.java:200) ~[?:1.8.0_241]
	at sun.rmi.transport.Transport$1.run(Transport.java:197) ~[?:1.8.0_241]
	at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_241]
	at sun.rmi.transport.Transport.serviceCall(Transport.java:196) ~[?:1.8.0_241]
	at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:573) ~[?:1.8.0_241]
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:834) ~[?:1.8.0_241]
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:688) ~[?:1.8.0_241]
	at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_241]
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:687) ~[?:1.8.0_241]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_241]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_241]
	at java.lang.Thread.run(Thread.java:748) ~[?:1.8.0_241]
	at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:303) ~[?:1.8.0_241]
	at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:279) ~[?:1.8.0_241]
	at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:163) ~[?:1.8.0_241]
	at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:235) ~[?:1.8.0_241]
	at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:180) ~[?:1.8.0_241]
	at com.sun.proxy.$Proxy22.rconfigure(Unknown Source) ~[?:?]
	at org.apache.jmeter.engine.ClientJMeterEngine.runTest(ClientJMeterEngine.java:153) ~[ApacheJMeter_core.jar:5.1.1 r1855137]
	at org.apache.jmeter.engine.DistributedRunner.start(DistributedRunner.java:132) ~[ApacheJMeter_core.jar:5.1.1 r1855137]
	at org.apache.jmeter.gui.action.RemoteStart.doAction(RemoteStart.java:81) ~[ApacheJMeter_core.jar:5.1.1 r1855137]
	at org.apache.jmeter.gui.action.ActionRouter.performAction(ActionRouter.java:88) ~[ApacheJMeter_core.jar:5.1.1 r1855137]
	at org.apache.jmeter.gui.action.ActionRouter.lambda$actionPerformed$0(ActionRouter.java:70) ~[ApacheJMeter_core.jar:5.1.1 r1855137]
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311) [?:1.8.0_241]
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) [?:1.8.0_241]
	at java.awt.EventQueue.access$500(EventQueue.java:97) [?:1.8.0_241]
	at java.awt.EventQueue$3.run(EventQueue.java:709) [?:1.8.0_241]
	at java.awt.EventQueue$3.run(EventQueue.java:703) [?:1.8.0_241]
	at java.security.AccessController.doPrivileged(Native Method) [?:1.8.0_241]
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74) [?:1.8.0_241]
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) [?:1.8.0_241]
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205) [?:1.8.0_241]
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) [?:1.8.0_241]
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) [?:1.8.0_241]
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) [?:1.8.0_241]
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) [?:1.8.0_241]
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) [?:1.8.0_241]
Caused by: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: 
	java.io.InvalidClassException: kg.apc.jmeter.threads.AbstractSimpleThreadGroup; local class incompatible: stream classdesc serialVersionUID = -2405554363432379872, local class serialVersionUID = 2316774539843805545
	at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:348) ~[?:1.8.0_241]
	at sun.rmi.transport.Transport$1.run(Transport.java:200) ~[?:1.8.0_241]
	at sun.rmi.transport.Transport$1.run(Transport.java:197) ~[?:1.8.0_241]
	at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_241]
	at sun.rmi.transport.Transport.serviceCall(Transport.java:196) ~[?:1.8.0_241]
	at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:573) ~[?:1.8.0_241]
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:834) ~[?:1.8.0_241]
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:688) ~[?:1.8.0_241]
	at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_241]
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:687) ~[?:1.8.0_241]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_241]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_241]
	at java.lang.Thread.run(Thread.java:748) ~[?:1.8.0_241]

解决方法将master/slave机上的jmeter版本都换成4.0

注意他们的插件是否脚本需要的都装了,可以把本地的4.0版本打成zip传到slave机上,然后按分布式配置那样把必要的配置修改
slave上的jmeter4.0
sNbwG9.md.png

最后

其他版本我未作尝试!!!