解決: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問題也沒了。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM