Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 961|回复: 0

JMeter学习-017-java.net.SocketException: Permission denied: connect 解决方案

[复制链接]
  • TA的每日心情
    奋斗
    2024-11-24 15:47
  • 签到天数: 804 天

    [LV.10]以坛为家III

    2053

    主题

    2111

    帖子

    72万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    726782
    发表于 2021-4-12 02:50:54 | 显示全部楼层 |阅读模式

    前几天,有了新的接口性能测试需求,同事在添加 HTTP请求 后,运行时响应信息如下所示:

     1 java.net.SocketException: Permission denied: connect
     2     at java.net.DualStackPlainSocketImpl.connect0(Native Method)
     3     at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
     4     at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)
     5     at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
     6     at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
     7     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
     8     at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
     9     at java.net.Socket.connect(Socket.java:589)
    10     at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:127)
    11     at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180)
    12     at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:294)
    13     at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:643)
    14     at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:479)
    15     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
    16     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805)
    17     at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.executeRequest(HTTPHC4Impl.java:505)
    18     at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:328)
    19     at org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:74)
    20     at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1141)
    21     at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1130)
    22     at org.apache.jmeter.threads.JMeterThread.process_sampler(JMeterThread.java:431)
    23     at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:258)
    24     at java.lang.Thread.run(Thread.java:745)

    经过问询谷大爷,查了一下,发现只要在启动脚本里添加 -Djava.net.preferIPv4Stack=true 参数,将其网络偏爱设置为 IPv4。设置如下所示:

    启动配置文件路径:{JMeter 主目录}\bin

    Linux 启动配置文件:jmeter.sh,添加如下启动参数设置:
            export JVM_ARGS="-Djava.net.preferIPv4Stack=true"

    Winows 启动配置文件:jmeter.bat,添加如下启动参数设置:
            set JVM_ARGS="-Djava.net.preferIPv4Stack=true"

    重新启动 JMeter 运行脚本即可解决之前的报错。

     

    后记:

    问题解决后,作为一名专职测试人员,我问自己难道是开发对此接口设置了 IPv4 偏好 ?!想想不应该呀。。。为防止用户在访问上述接口出现此问题,我还是去找相应的接口开发人确认了一下。经确认其未进行相应的设置,同时查看源码遍历 IPv 信息,也未发现有相应的设定!

    新的问题出现了,是什么导致了其访问接口的时候,偏好了 IPv4 的呢 ????

    正所谓,功夫不负有心人!后经努力,查询 JDK 的 Networking Properties 才得到了最终的答案,如下所示。

    技术分享

     

    后来查询了一下 JMeter 的用户手册,发现可以通过修改其配置文件,实现在任意系统的移植,而不需要改每个系统对应的启动文件。

    系统配置文件:{JMeter 主目录}\bin\system.properties,将 java.net.preferIPv4Stack 设置为 true 即可

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-12-22 16:22 , Processed in 0.053477 second(s), 28 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表