簡體   English   中英

在Spring Boot應用程序中使用MuleClient

[英]Using MuleClient in spring boot application

背景

我使用Mule運行時作為在單獨服務器上運行的基礎結構組件。 我想確定我的應用程序中實現騾子客戶的最佳實踐。

問題

我正在嘗試在Spring Boot rest應用程序中使用MuleClient時遇到各種問題(通過org.mule.modules/mule-module-client/3.8.1 maven依賴項):

1)在騾(log4j的日志記錄子系統)與彈簧引導(的logback)的默認沖突。 這可以通過將Spring Boot切換到log4j來解決( https://docs.spring.io/spring-boot/docs/current/reference/html/howto-logging.html

2)Mule Client引入了對org.jgrapht/jgrapht-jdk1.5/0.7.3依賴關系,這在啟動時產生錯誤,而Ignoring Class-Path entry lib/jgraph.jar found in ...

3) 最重要的是春天啟動的應用程序無法啟動,並出現以下錯誤:

Description:

Parameter 0 of method cacheManagerCustomizers in 
org.springframework.boot.autoconfigure.cache.CacheAutoConfiguration required a bean of type 'org.springframework.beans.factory.ObjectProvider' that could not be found.


Action:

Consider defining a bean of type 
'org.springframework.beans.factory.ObjectProvider' in your configuration.

如果我從應用程序中刪除@EnableCaching批注,則在另一個依賴項注入中會出現相同的錯誤:

Parameter 1 of constructor in 
org.springframework.boot.autoconfigure.web.ErrorMvcAutoConfiguration required a bean of type 'org.springframework.beans.factory.ObjectProvider' that could not be found.

問題

1)對解決這些錯誤,請任何想法?
2)在我的應用程序使用MuleClient(並有機會獲得信息,事件,流,等...),或者我應該只是回落到普通HTTP REST客戶端是否值得?

謝謝!

恕我直言,如果您使用MuleClient,那么您將擊敗諸如Mule之類的集成平台。 如果需要集成另一個應用程序(不是基於Java的)怎么辦? 您使用MuleClient完成的所有工作都需要重做。

我強烈建議您使MuleApplication可通過REST API訪問,並且不要使用MuleClient,因為您可能會提到最后一點。 這就是微服務架構的全部含義,這意味着任何其他應用程序仍可以通過REST API進行集成,由於RAML,所有這些文檔都很好地記錄在案並且易於使用。

如果查看3.8.1版的mule-module-spring-config,您會發現它們正在重新定義org.springframework.beans.factory.support.DefaultListableBeanFactory。 此類中的某些內容在啟動時導致ObjectProvider異常。

在您的項目中重新定義此類,提供實現的最新版本,並且該應用程序將無例外啟動。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM