1. 程式人生 > >jcifs.smb.SmbException: Failed to connect: 0.0.0.0<00>/IP 解決方案

jcifs.smb.SmbException: Failed to connect: 0.0.0.0<00>/IP 解決方案

因為業務原因,現在內網系統使用共享資料夾方式進行檔案的輸入輸出,Java開發,使用的Jar包為jcifs,在本地測試完全正常,部署到正式環境後出現:

jcifs.smb.SmbException: Failed to connect: 0.0.0.0<00>/IP的異常,解決方式如下:

分析原因

上述部分明確提到了,jsifs僅支援SMB1,而不支援SMB2/SMB3,所以先從伺服器支援協議入手

伺服器為windows伺服器,在伺服器上開啟powershell控制檯(在開始->執行->輸入 powershell即可)

獲取 SMB1和SMB2 伺服器協議配置的當前狀態,輸入:

Get-SmbServerConfiguration | Select EnableSMB1Protocol, EnableSMB2Protocol

輸出為:

可以看出當前伺服器SMB1未開啟,嘗試開啟SMB1,

在powershell控制檯輸入:

Set-SmbServerConfiguration -EnableSMB1Protocol $true

報錯,指定服務不存在,所以當前的伺服器不支援SMB1,到此,原因找到了,因為本地使用的機器支援SMB1所以可以正常執行jcifs的功能,但是正式環境的伺服器不支援SMB1,所以報錯

解決問題

當前解決思路為替換jar包(如果有更好的方式,歡迎私信)

jcifs的網站上提供了兩種支援SMB2/SMB3的方式

第二步: 參照github官方的文件進行編寫程式碼,連結共享資料夾

實測成功

到此,問題解決,如按上述流程有任何問題,歡迎私信