釘釘SDK:java.lang.NoClassDefFoundError: com/dingtalk/oapi/lib/aes/DingTalkEncrypto

問題描述:
之前做項目需要用到釘釘SDK獲取 釘釘的部門數據,和部門用戶數據,其中有一步需要註冊回調地址,即把回調地址給到釘釘,當用戶數據、部門數據發生改變時,釘釘會向回調地址發送通知,我們收到通知時,在本地做出相應的數據庫操作,保證本地數據與釘釘數據一致;
爲了引用釘釘SDK,在使用idea開發時直接使用引用第三方jar包的方式進行開發,如下圖所示:
在這裏插入圖片描述這樣在idea的src/main/resource/包下就生產了jar包,如圖所示:
在這裏插入圖片描述在idea中開發時,一切測試均正常返回,
當打成jar包部署到服務器時,再測試釘釘註冊回調地址的接口時,一直報錯如下圖:
在這裏插入圖片描述看到該報錯,我就懷疑打成jar包時,此sdk包沒有被打進去,我使用winrar打開jar包,發現的確找不到該文件,如圖所示:
在這裏插入圖片描述此時,我已經考慮將該sdk jar包放入maven進行管理,我拿出我珍藏已久的maven命令:
mvn install:install-file -Dfile=jar包的位置 -DgroupId=自定義groupId -DartifactId=自定義artifactId -Dversion=自定義version -Dpackaging=jar
將兩個jar包放入maven中進行管理
執行過程:
第一個jar包
在這裏插入圖片描述第二個jar包
在這裏插入圖片描述注意:(1)沒有配置maven環境變量的同學,要把cmd的路徑定位到maven的bin目錄下哦
(2)maven的settings.xml配置的倉庫路徑要跟idea中配置的倉庫路徑一致,否則即使以上兩個命令執行成功,idea中pom文件也找不到jar包













以上命令執行成功之後,我們只需要修改下 pom文件即可引入倉庫中的jar包:如下所示
在這裏插入圖片描述此時,我們就可以刪除 src/main/resources/下的lib文件夾啦,因爲我們用不到啦!

一切就緒,重新打包,部署到linux上之後,問題解決

由於本項目是在服務器是在內網上進行部署,所以請求釘釘時還使用到了nginx ,有需要nginx的同學可以聯繫我!歡迎指正!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章