簡體   English   中英

WildFly RestEasy版本混亂

[英]WildFly RestEasy Version confusion

我想使用RestEasy構建REST API。 生成的文件應部署在WildFly應用程序服務器中。

我遇到以下SO問題中描述的問題: AsynchronousDispatcher錯誤

標記的解決方案告訴我,將依賴項設置為“提供”。 據我了解,這意味着該庫未包含在我的戰爭文件中,而是直接從應用服務器中獲取的...

這不就是錯嗎?

我的想法是建立一個自包含的war文件,其中包含我需要的版本中所有需要的庫。

從應用服務器提供后,我確實從那里獲得了當前可用的版本。 我不太了解版本...當有人想到更新服務器上的RestEasy庫時,它可能會破壞我的應用程序。

我不確定我錯過了什么還是做錯了什么嗎?

Java EE的一大優勢是朝着API進行開發,而不必擔心實現。 Java EE容器提供API以及API的實現。 如果包含實現依賴關系,則可能會發生以下兩種情況之一。

  1. 您的依賴項將被忽略,使其毫無意義地將其包含在部署中。

  2. 您將在所包含的依賴項與服務器期望的依賴項之間發生沖突。 可能是這樣的:

    • ClassCastException因為它在類路徑中找到兩個相同的類。
    • MethodNotFoundException因為版本不匹配
    • 沖突的其他各種問題

朝着API而非實現的方向發展還使您可以輕松地在符合Java EE的容器之間切換,而無需對部署進行最小的更改。 API通常是向后兼容的,因此版本升級也不是什么大問題。

如果要使用胖WAR(包括實現)而不是瘦WAR(不包括實現),則servlet容器可能是更好的解決方案。 WildFly確實只有一個servlet下載。 我鼓勵您盡管信任容器對實現依賴做正確的事情:)。 通常,只有在升級Java EE版本時才出現升級問題。 即使那樣,通常也很安全。

暫無
暫無

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

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