• 解决:IDEA unable to import maven project see logs for details问题+java http请求报java.net.SocketException: Permission denied:connect 问题


    背景:用IDEA写了一个java发送http请求的maven项目。

    运行时,项目报java.net.SocketException: Permission denied:connect问题;

    修改pom文件自动更新依赖时,IDEA报unable to import maven project see logs for details问题。

    一开始以为是环境变量的原因:https://blog.csdn.net/jiangshubian/article/details/76549073 添加了环境变量之后还是不行

    然后以为是windows防火墙的原因,先将idea添加到了防火墙允许列表中,不行;然后干脆关闭防火墙,还是不行。

    网上说也可能是代理的原因,但是我并没有使用代理。

    然后我把我的代码给别人考了一份,然后在别人的机器上跑,结果跑通了

    因此猜测是因为我的电脑是通过手机USB共享网络连的网,很可能是手机端有权限控制。之前看过一篇文章,说安卓中java如果要发送http请求 ,必须在manifest.xml中配置一个东西,否则安装存在权限控制:https://blog.csdn.net/shenyuemei/article/details/8003654。因此猜测就是因为这个,电脑通过手机联网,所以请求在经过android系统时,被android拦截。

    于是用电脑直接连wifi试了一下还是不行,一样的错误。

    解决过程:

    1、根据错误提示unable to import maven project see logs for details,查看IDEA错误日志:Help》show log in explorer》打开idea.log文件

    拉到最下面,根据时间找到错误详细信息:

    WARN先不用看,直接看error和cause by,可以提取出以下几点主要错误信息:

    ERROR - #org.jetbrains.idea.maven - Cannot reconnect.
    java.lang.RuntimeException: Cannot reconnect.

    Caused by: java.rmi.RemoteException: Cannot start maven service; nested exception is:
    com.intellij.execution.ExecutionException: java.rmi.server.ExportException: Port already in use: 0; nested exception is:
    java.net.BindException: Address already in use: JVM_Bind

    Caused by: java.net.BindException: Address already in use: JVM_Bind

    Caused by: com.intellij.execution.ExecutionException: java.rmi.server.ExportException: Port already in use: 0; nested exception is: 

    Caused by: java.net.BindException: Address already in use: JVM_Bind

    由此可以看出,cannot import maven project(其实就是无法更新依赖)是由于某个(这里错误提示0号端口,但后面实际发现不是0号端口)端口被占用,JVM被占用导致maven service无法启动。

    2、根据错误提示java.net.SocketException: Permission denied:connect,单步调试了一下项目,发现调试过程中出现了一条新的错误信息:

    Disconnected from the target VM, address: '127.0.0.1:xxxx', transport: 'socket'

    由此可以确定了,就是因为端口被占用导致包括maven service无法启动,导致maven项目运行报错,同时也导致idea更新pom.xml报错。

     

    3、解决错误

    cmd查看占用端口的进程:https://jingyan.baidu.com/article/3c48dd34491d47e10be358b8.html

    并没有发现占用0号进程的端口。所以,确实是存在端口占用,但是错误提示却没有给出被占用的是哪一个端口。

    那接下来怎么办呢?

    重启了一下网卡,还是不行。

    然后重启了一下电脑,再打开IDEA,修改了一下pom文件试试,unable to import maven project see logs for details问题没了,成功更新了maven依赖包!然后运行程序,java.net.SocketException: Permission denied:connect问题也没了。

     

  • 相关阅读:
    SecureCRT 连接 虚拟机Linux 命令
    如何使用secureCRT连接vmware中的虚拟主机?
    SecureCRT8.1+SecureCRT_keygen完成注册
    常用python机器学习库总结
    Torch7在Ubuntu下的安装与配置
    朴素贝叶斯算法 & 应用实例
    编写MR代码中,JAVA注意事项
    march.
    Docker CentOS 7.2镜像systemd问题解决办法
    Docker 基础命令 简要入门
  • 原文地址:https://www.cnblogs.com/zealousness/p/9345650.html
Copyright © 2020-2023  润新知