gpt4 book ai didi

ssl - 无法使用 SSL RMI 启动 JMeter 4.0 客户端

转载 作者:太空宇宙 更新时间:2023-11-03 14:01:50 24 4
gpt4 key购买 nike

我正在尝试从 JMeter 4.0 客户端在远程 JMeter 4.0 服务器上运行一个简单的测试。
两者都配置为使用相同的 rmi_keystore.jks。服务器正常启动并监听 RMI 和服务器引擎端口。
当我尝试启动客户端时,如果失败并出现 java.net.BindException: Address already in use (Bind failed) 错误。 netstat 显示没有进程正在监听此端口。

2018-06-08 01:04:38,934 INFO o.a.j.u.JMeterUtils: Setting Locale to en_EN
2018-06-08 01:04:38,955 INFO o.a.j.JMeter: Loading user properties from: /opt/apache-jmeter-4.0/bin/user.properties
2018-06-08 01:04:38,955 INFO o.a.j.JMeter: Loading system properties from: /opt/apache-jmeter-4.0/bin/system.properties
2018-06-08 01:04:38,955 INFO o.a.j.JMeter: Setting System property: java.rmi.server.hostname=x.x.x.164
2018-06-08 01:04:38,962 INFO o.a.j.JMeter: Copyright (c) 1998-2018 The Apache Software Foundation
2018-06-08 01:04:38,962 INFO o.a.j.JMeter: Version 4.0 r1823414
2018-06-08 01:04:38,962 INFO o.a.j.JMeter: java.version=1.8.0_171
2018-06-08 01:04:38,963 INFO o.a.j.JMeter: java.vm.name=Java HotSpot(TM) 64-Bit Server VM
2018-06-08 01:04:38,963 INFO o.a.j.JMeter: os.name=Linux
2018-06-08 01:04:38,963 INFO o.a.j.JMeter: os.arch=amd64
2018-06-08 01:04:38,963 INFO o.a.j.JMeter: os.version=3.10.0-693.21.1.el7.x86_64
2018-06-08 01:04:38,963 INFO o.a.j.JMeter: file.encoding=UTF-8
2018-06-08 01:04:38,963 INFO o.a.j.JMeter: Max memory =1073741824
2018-06-08 01:04:38,963 INFO o.a.j.JMeter: Available Processors =2
2018-06-08 01:04:38,969 INFO o.a.j.JMeter: Default Locale=English (EN)
2018-06-08 01:04:38,969 INFO o.a.j.JMeter: JMeter Locale=English (EN)
2018-06-08 01:04:38,969 INFO o.a.j.JMeter: JMeterHome=/opt/apache-jmeter-4.0
2018-06-08 01:04:38,969 INFO o.a.j.JMeter: user.dir =/data/blah-blah-blah
2018-06-08 01:04:38,969 INFO o.a.j.JMeter: PWD =/data/blah-blah-blah
2018-06-08 01:04:38,972 INFO o.a.j.JMeter: IP: x.x.x.164 Name: client.domain.local FullName: client.domain.local
2018-06-08 01:04:38,976 INFO o.a.j.s.FileServer: Default base='/data/blah-blah-blah'
2018-06-08 01:04:38,983 INFO o.a.j.s.FileServer: Set new base='/data/blah-blah-blah'
2018-06-08 01:04:39,290 INFO o.a.j.s.SaveService: Testplan (JMX) version: 2.2. Testlog (JTL) version: 2.2
2018-06-08 01:04:39,317 INFO o.a.j.s.SaveService: Using SaveService properties file encoding UTF-8
2018-06-08 01:04:39,324 INFO o.a.j.s.SaveService: Using SaveService properties version 4.0
2018-06-08 01:04:39,334 INFO o.a.j.s.SaveService: Loading file: SimpleHttpRequest.jmx
2018-06-08 01:04:39,403 INFO o.a.j.p.h.s.HTTPSamplerBase: Parser for text/html is org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser
2018-06-08 01:04:39,403 INFO o.a.j.p.h.s.HTTPSamplerBase: Parser for application/xhtml+xml is org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser
2018-06-08 01:04:39,403 INFO o.a.j.p.h.s.HTTPSamplerBase: Parser for application/xml is org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser
2018-06-08 01:04:39,403 INFO o.a.j.p.h.s.HTTPSamplerBase: Parser for text/xml is org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser
2018-06-08 01:04:39,403 INFO o.a.j.p.h.s.HTTPSamplerBase: Parser for text/vnd.wap.wml is org.apache.jmeter.protocol.http.parser.RegexpHTMLParser
2018-06-08 01:04:39,403 INFO o.a.j.p.h.s.HTTPSamplerBase: Parser for text/css is org.apache.jmeter.protocol.http.parser.CssParser
2018-06-08 01:04:39,416 INFO o.a.j.JMeter: Creating summariser <summary>
2018-06-08 01:04:39,423 INFO o.a.j.e.DistributedRunner: Configuring remote engine: x.x.x.169
2018-06-08 01:04:40,286 INFO o.a.j.e.DistributedRunner: Starting remote engines
2018-06-08 01:04:40,288 INFO o.a.j.e.DistributedRunner: Starting the test @ Fri Jun 08 01:04:40 UTC 2018 (1528419880286)
2018-06-08 01:04:40,288 INFO o.a.j.e.ClientJMeterEngine: running clientengine run method
2018-06-08 01:04:40,296 INFO o.a.j.e.u.CompoundVariable: Note: Function class names must contain the string: '.functions.'
2018-06-08 01:04:40,296 INFO o.a.j.e.u.CompoundVariable: Note: Function class names must not contain the string: '.gui.'
2018-06-08 01:04:41,108 INFO o.a.j.r.RmiUtils: Resolving by name the value of System property 'java.rmi.server.hostname': x.x.x.164
2018-06-08 01:04:41,108 INFO o.a.j.r.RmiUtils: Local IP address=x.x.x.164
2018-06-08 01:04:41,111 INFO o.a.j.s.SampleEvent: List of sample_variables: []
2018-06-08 01:04:41,114 INFO o.a.j.r.SSLRMIServerSocketFactory: Created SSLSocket: [SSL: ServerSocket[addr=/x.x.x.164,localport=50100]]
2018-06-08 01:04:41,125 INFO o.a.j.s.BatchSampleSender: Using batching (client settings) for this run. Thresholds: num=100, time=60000
2018-06-08 01:04:41,125 INFO o.a.j.s.DataStrippingSampleSender: Using DataStrippingSampleSender for this run
2018-06-08 01:04:41,127 INFO o.a.j.r.RmiUtils: Resolving by name the value of System property 'java.rmi.server.hostname': x.x.x.164
2018-06-08 01:04:41,127 INFO o.a.j.r.RmiUtils: Local IP address=x.x.x.164
2018-06-08 01:04:41,130 ERROR o.a.j.e.ConvertListeners: Error replacing class org.apache.jmeter.threads.RemoteThreadsListenerTestElement by wrapper: class org.apache.jmeter.threads.RemoteThreadsListenerWrapper
java.rmi.server.ExportException: Listen failed on port: 50100; nested exception is:
java.io.IOException: Could not bind to /x.x.x.164 using port 50100
at sun.rmi.transport.tcp.TCPTransport.listen(Unknown Source) ~[?:1.8.0_171]
at sun.rmi.transport.tcp.TCPTransport.exportObject(Unknown Source) ~[?:1.8.0_171]
at sun.rmi.transport.tcp.TCPEndpoint.exportObject(Unknown Source) ~[?:1.8.0_171]
at sun.rmi.transport.LiveRef.exportObject(Unknown Source) ~[?:1.8.0_171]
at sun.rmi.server.UnicastServerRef.exportObject(Unknown Source) ~[?:1.8.0_171]
at java.rmi.server.UnicastRemoteObject.exportObject(Unknown Source) ~[?:1.8.0_171]
at java.rmi.server.UnicastRemoteObject.exportObject(Unknown Source) ~[?:1.8.0_171]
at java.rmi.server.UnicastRemoteObject.<init>(Unknown Source) ~[?:1.8.0_171]
at org.apache.jmeter.threads.RemoteThreadsListenerImpl.<init>(RemoteThreadsListenerImpl.java:59) ~[ApacheJMeter_core.jar:4.0 r1823414]
at org.apache.jmeter.engine.ConvertListeners.addNode(ConvertListeners.java:66) [ApacheJMeter_core.jar:4.0 r1823414]
at org.apache.jorphan.collections.HashTree.traverse(HashTree.java:976) [jorphan.jar:4.0 r1823414]
at org.apache.jmeter.engine.ClientJMeterEngine.runTest(ClientJMeterEngine.java:135) [ApacheJMeter_core.jar:4.0 r1823414]
at org.apache.jmeter.engine.DistributedRunner.start(DistributedRunner.java:132) [ApacheJMeter_core.jar:4.0 r1823414]
at org.apache.jmeter.engine.DistributedRunner.start(DistributedRunner.java:149) [ApacheJMeter_core.jar:4.0 r1823414]
at org.apache.jmeter.JMeter.runNonGui(JMeter.java:1013) [ApacheJMeter_core.jar:4.0 r1823414]
at org.apache.jmeter.JMeter.startNonGui(JMeter.java:915) [ApacheJMeter_core.jar:4.0 r1823414]
at org.apache.jmeter.JMeter.start(JMeter.java:543) [ApacheJMeter_core.jar:4.0 r1823414]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_171]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_171]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_171]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_171]
at org.apache.jmeter.NewDriver.main(NewDriver.java:245) [ApacheJMeter.jar:4.0 r1823414]
Caused by: java.io.IOException: Could not bind to /x.x.x.164 using port 50100
at org.apache.jmeter.rmi.SSLRMIServerSocketFactory.createServerSocket(SSLRMIServerSocketFactory.java:139) ~[ApacheJMeter_core.jar:4.0 r1823414]
at sun.rmi.transport.tcp.TCPEndpoint.newServerSocket(Unknown Source) ~[?:1.8.0_171]
... 22 more
Caused by: java.net.BindException: Address already in use (Bind failed)
at java.net.PlainSocketImpl.socketBind(Native Method) ~[?:1.8.0_171]
at java.net.AbstractPlainSocketImpl.bind(Unknown Source) ~[?:1.8.0_171]
at java.net.ServerSocket.bind(Unknown Source) ~[?:1.8.0_171]
at java.net.ServerSocket.<init>(Unknown Source) ~[?:1.8.0_171]
at javax.net.ssl.SSLServerSocket.<init>(Unknown Source) ~[?:1.8.0_171]
at sun.security.ssl.SSLServerSocketImpl.<init>(Unknown Source) ~[?:1.8.0_171]
at sun.security.ssl.SSLServerSocketFactoryImpl.createServerSocket(Unknown Source) ~[?:1.8.0_171]
at org.apache.jmeter.rmi.SSLRMIServerSocketFactory.createServerSocket(SSLRMIServerSocketFactory.java:137) ~[ApacheJMeter_core.jar:4.0 r1823414]
at sun.rmi.transport.tcp.TCPEndpoint.newServerSocket(Unknown Source) ~[?:1.8.0_171]
... 22 more
2018-06-08 01:04:41,156 INFO o.a.j.r.RmiUtils: Resolving by name the value of System property 'java.rmi.server.hostname': x.x.x.164
2018-06-08 01:04:41,156 INFO o.a.j.r.RmiUtils: Local IP address=x.x.x.164
2018-06-08 01:04:41,158 ERROR o.a.j.e.ConvertListeners: RemoteException occurred while replacing Remotable item.
java.rmi.server.ExportException: Listen failed on port: 50100; nested exception is:
java.io.IOException: Could not bind to /x.x.x.164 using port 50100
at sun.rmi.transport.tcp.TCPTransport.listen(Unknown Source) ~[?:1.8.0_171]
at sun.rmi.transport.tcp.TCPTransport.exportObject(Unknown Source) ~[?:1.8.0_171]
at sun.rmi.transport.tcp.TCPEndpoint.exportObject(Unknown Source) ~[?:1.8.0_171]
at sun.rmi.transport.LiveRef.exportObject(Unknown Source) ~[?:1.8.0_171]
at sun.rmi.server.UnicastServerRef.exportObject(Unknown Source) ~[?:1.8.0_171]
at java.rmi.server.UnicastRemoteObject.exportObject(Unknown Source) ~[?:1.8.0_171]
at java.rmi.server.UnicastRemoteObject.exportObject(Unknown Source) ~[?:1.8.0_171]
at java.rmi.server.UnicastRemoteObject.<init>(Unknown Source) ~[?:1.8.0_171]
at org.apache.jmeter.samplers.RemoteSampleListenerImpl.<init>(RemoteSampleListenerImpl.java:44) ~[ApacheJMeter_core.jar:4.0 r1823414]
at org.apache.jmeter.engine.ConvertListeners.addNode(ConvertListeners.java:80) [ApacheJMeter_core.jar:4.0 r1823414]
at org.apache.jorphan.collections.HashTree.traverse(HashTree.java:976) [jorphan.jar:4.0 r1823414]
at org.apache.jmeter.engine.ClientJMeterEngine.runTest(ClientJMeterEngine.java:135) [ApacheJMeter_core.jar:4.0 r1823414]
at org.apache.jmeter.engine.DistributedRunner.start(DistributedRunner.java:132) [ApacheJMeter_core.jar:4.0 r1823414]
at org.apache.jmeter.engine.DistributedRunner.start(DistributedRunner.java:149) [ApacheJMeter_core.jar:4.0 r1823414]
at org.apache.jmeter.JMeter.runNonGui(JMeter.java:1013) [ApacheJMeter_core.jar:4.0 r1823414]
at org.apache.jmeter.JMeter.startNonGui(JMeter.java:915) [ApacheJMeter_core.jar:4.0 r1823414]
at org.apache.jmeter.JMeter.start(JMeter.java:543) [ApacheJMeter_core.jar:4.0 r1823414]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_171]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_171]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_171]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_171]
at org.apache.jmeter.NewDriver.main(NewDriver.java:245) [ApacheJMeter.jar:4.0 r1823414]
Caused by: java.io.IOException: Could not bind to /x.x.x.164 using port 50100
at org.apache.jmeter.rmi.SSLRMIServerSocketFactory.createServerSocket(SSLRMIServerSocketFactory.java:139) ~[ApacheJMeter_core.jar:4.0 r1823414]
at sun.rmi.transport.tcp.TCPEndpoint.newServerSocket(Unknown Source) ~[?:1.8.0_171]
... 22 more
Caused by: java.net.BindException: Address already in use (Bind failed)
at java.net.PlainSocketImpl.socketBind(Native Method) ~[?:1.8.0_171]
at java.net.AbstractPlainSocketImpl.bind(Unknown Source) ~[?:1.8.0_171]
at java.net.ServerSocket.bind(Unknown Source) ~[?:1.8.0_171]
at java.net.ServerSocket.<init>(Unknown Source) ~[?:1.8.0_171]
at javax.net.ssl.SSLServerSocket.<init>(Unknown Source) ~[?:1.8.0_171]
at sun.security.ssl.SSLServerSocketImpl.<init>(Unknown Source) ~[?:1.8.0_171]
at sun.security.ssl.SSLServerSocketFactoryImpl.createServerSocket(Unknown Source) ~[?:1.8.0_171]
at org.apache.jmeter.rmi.SSLRMIServerSocketFactory.createServerSocket(SSLRMIServerSocketFactory.java:137) ~[ApacheJMeter_core.jar:4.0 r1823414]
at sun.rmi.transport.tcp.TCPEndpoint.newServerSocket(Unknown Source) ~[?:1.8.0_171]
... 22 more
2018-06-08 01:04:41,246 ERROR o.a.j.e.ClientJMeterEngine: Error in rconfigure() method java.rmi.MarshalException: error marshalling arguments; nested exception is:
java.io.NotSerializableException: org.apache.jmeter.threads.RemoteThreadsListenerTestElement
2018-06-08 01:04:41,250 INFO o.a.j.e.ClientJMeterEngine: Interrupting RMI Reaper
2018-06-08 01:04:41,250 ERROR o.a.j.u.JMeterUtils: Error in rconfigure() method java.rmi.MarshalException: error marshalling arguments; nested exception is:
java.io.NotSerializableException: org.apache.jmeter.threads.RemoteThreadsListenerTestElement
2018-06-08 01:04:41,251 INFO o.a.j.e.DistributedRunner: Remote engines have been started

这是在客户端的 jmeter.properties 中。

...client.rmi.localport=50100...

启动客户端的命令行

jmeter -n -X -Rx.x.x.169 -Djava.rmi.server.hostname=x.x.x.164 -t SimpleHttpRequest.jmx -j jmeter-client.log

不知道JMeter是不是从这里开始监听

SSLRMIServerSocketFactory: Created SSLSocket: [SSL: ServerSocket[addr=/x.x.x.164,localport=50100]]

然后出于某种原因再次尝试在同一个端口上监听。

如果我在服务器和客户端上为 RMI 禁用 SSL,它工作正常,但出于安全原因我不想这样做。有人能指出我正确的方向吗?

最佳答案

编辑

已在 JMeter 5.0 版本中修复

Bug 62463 - Fix usage of ports, when client.rmi.localport is set for distributed runs.

这是 JMeter 4.0 中的一个错误,将(希望)在 4.1 中得到修复。您可能想在 https://bz.apache.org/bugzilla/show_bug.cgi?id=62463 跟踪此信息

关于ssl - 无法使用 SSL RMI 启动 JMeter 4.0 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50752126/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com