Cockpit plugin 加載失敗問題 for Camunda 7.9.0

今天在集成Camunda 到Spring Cloud 微服務中的時候出現了 org.camunda.bpm.engine.rest.exception.rest.exception.RestException:It was not able to load the following file 'app/plugin.js' 異常。

剛開始以爲是Spring boot 對靜態資源訪問的限制問題,添加WebMVC的靜態資源的映射配置,但是沒有任何作用。

根據異常棧信息找到發生異常類,發現這個不是一個靜態資源訪問題,而是Rest請求,如圖:

 後在Camunda的論壇中找到了解決方案:

要解決這個問題,需要配置Idea Run/Debug Configuration 中的 shorten command line 選項:

我的默認是 none,選擇 classpath file 解決了這個問題.

那麼  shorten command line 是做什麼用的呢?

       如果類路徑太長,或者有許多VM參數,程序就無法啓動。原因是大多數操作系統都有命令行長度限制。在這種情況下,IntelliJIDEA將試圖縮短類路徑。

  shorten command line 選項提供三種選項縮短類路徑。

  none:這是默認選項,idea不會縮短命令行。如果命令行超出了OS限制,這個想法將無法運行您的應用程序,但是工具提示將建議配置縮短器。

  JAR manifest:idea 通過臨時的classpath.jar傳遞長的類路徑。原始類路徑在MANIFEST.MF中定義爲classpath.jar中的類路徑屬性。

  classpath file:idea 將一個長類路徑寫入文本文件中。

進一步分析:

     Camunda Cockpit Plugin 的靜態資源是在Jar 包中的,所以訪問jar包中靜態資源,例如 /app/plugin.css 或者 /app/plugin.js ,一般是 /.../resource.jar!/META-INF/resources/plugin/cockpit/app/plugin.css. 如果OS 操作系統受限,就可能會訪問不到資源文件。

所以,需要調整類路徑的訪問方式,就可以解決這個問題。

以上是個人的理解,如果有不對的地方,還請大家指正^_^

參考文獻:

https://forum.camunda.org/t/camunda-cockpit-plugin-produces-404-error-for-version-7-11/16788/2

https://www.cnblogs.com/virgosnail/p/10335224.html

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