如何使用 Jersey 的通用 URL 映射提供靜態內容,同時避免 404 錯誤?
使用Jersey 的通用URL 映射提供靜態內容
Jersey 在其映射中廣泛使用/* URL 模式有時會導致404 錯誤訪問HTML 檔案等靜態資源。此問題源自於映射與 Web 容器中靜態內容的預設處理衝突。
解決Jersey 1.x 中的衝突
服務如果要在Jersey 1.x 中使用/* 映射來處理靜態內容,建議從Jersey servlet 切換到過濾器。這可以透過更新web.xml 配置來實現,如下所示:
<code class="xml"><filter> <filter-name>Jersey Filter</filter-name> <filter-class>com.sun.jersey.spi.container.servlet.ServletContainer</filter-class> <init-param> <param-name>javax.ws.rs.Application</param-name> <param-value>org.frog.jump.JerseyApp</param-value> </init-param> <init-param> <param-name>com.sun.jersey.config.property.WebPageContentRegex</param-name> <param-value>/.*html</param-value> </init-param> </filter> <filter-mapping> <filter-name>Jersey Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping></code>
此配置將允許Jersey 根據WebPageContentRegex 模式(在本例中為/.*html)過濾請求,從而使靜態資源能夠
解決Jersey 2.x 中的衝突
Jersey 2.x 的解決方案與1.x 類似,略有修改由於屬性名稱的更改。以下web.xml 配置應該可以解決該問題:
<code class="xml"><filter> <filter-name>Jersey Filter</filter-name> <filter-class>org.glassfish.jersey.servlet.ServletContainer</filter-class> <init-param> <param-name>jersey.config.server.provider.packages</param-name> <param-value>org.example</param-value> </init-param> <init-param> <param-name>jersey.config.servlet.filter.staticContentRegex</param-name> <param-value>/.*html</param-value> </init-param> </filter> <filter-mapping> <filter-name>Jersey Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping></code>
此外,POM 檔案必須包含以下依賴項:
<code class="xml"><dependency> <groupId>org.glassfish.jersey.core</groupId> <artifactId>jersey-server</artifactId> <version>${jersey2.version}</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.glassfish.jersey.containers</groupId> <artifactId>jersey-container-servlet-core</artifactId> <version>${jersey2.version}</version> <type>jar</type> <scope>compile</scope> </dependency></code>
可以自訂staticContentRegex 參數以符合不同的檔案根據需要擴展。
作為使用過濾器的替代方法,另一種方法是為服務定義版本化路徑,例如“/v1/*”,允許在不需要過濾器的情況下提供靜態內容。
以上是如何使用 Jersey 的通用 URL 映射提供靜態內容,同時避免 404 錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

公司安全軟件導致部分應用無法正常運行的排查與解決方法許多公司為了保障內部網絡安全,會部署安全軟件。 ...

將姓名轉換為數字以實現排序的解決方案在許多應用場景中,用戶可能需要在群組中進行排序,尤其是在一個用...

系統對接中的字段映射處理在進行系統對接時,常常會遇到一個棘手的問題:如何將A系統的接口字段有效地映�...

在使用MyBatis-Plus或其他ORM框架進行數據庫操作時,經常需要根據實體類的屬性名構造查詢條件。如果每次都手動...

在使用IntelliJIDEAUltimate版本啟動Spring...

Java對象與數組的轉換:深入探討強制類型轉換的風險與正確方法很多Java初學者會遇到將一個對象轉換成數組的�...

電商平台SKU和SPU表設計詳解本文將探討電商平台中SKU和SPU的數據庫設計問題,特別是如何處理用戶自定義銷售屬...

Redis緩存方案如何實現產品排行榜列表的需求?在開發過程中,我們常常需要處理排行榜的需求,例如展示一個�...
