我一直在嘗試設定具有常見錯誤處理的碼頭服務器。我正在使用 jetty 9.4.44.v20210927 家庭分發。根據jetty-9 檔案,我撰寫了一個擴展ErrorHandler類并覆寫該handle()方法的類。我將它匯出為 jar 并將其包含在 lib/ext 中,并且該類被正確發現和加載(使用--debug和-Dorg.eclipse.jetty.LEVEL=DEBUG標志驗證)。我還按照檔案中的說明將此添加到 jetty.xml 服務器實體。無論進行什么更改,錯誤只會由默認的 ErrorPageErrorHandler 而不是我的自定義類處理。這是我擁有的 xml 背景關系檔案
<?xml version="1.0"?><!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_3.dtd">
<Configure id="Server" class="org.eclipse.jetty.server.Server">
...
<Call name="addBean">
<Arg>
<New class="com.example.test.CustomErrorHandler"/>
</Arg>
</Call>
...
</Configure>
注意:我正在嘗試為整個服務器實體而不是為特定背景關系設定 errorHandler。為單個背景關系設定相同的錯誤處理程式是可行的。但同樣不適用于服務器實體。另外,我正在嘗試使用碼頭 IoC 來實作這一目標。
uj5u.com熱心網友回復:
你想用Server.setErrorHandler(ErrorHandler)
請參閱:https://javadoc.io/static/org.eclipse.jetty/jetty-server/9.4.45.v20220203/org/eclipse/jetty/server/Server.html#setErrorHandler(org.eclipse.jetty.server。處理程式。錯誤處理程式)
所以這意味著...
<?xml version="1.0"?><!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN"
"http://www.eclipse.org/jetty/configure_9_3.dtd">
<Configure id="Server" class="org.eclipse.jetty.server.Server">
...
<Set name="errorHandler">
<New class="com.example.test.CustomErrorHandler"/>
</Set>
...
</Configure>
此服務器級別ErrorHandler用于非基于 webapp 的請求,甚至用于具有無法分派到 webapp 的錯誤的請求。
每個 Web App 都有自己獨特的ErrorPageErrorHandler,在部署 Web App 時創建。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/446519.html
上一篇:Eclipse/Git:“您正在使用帶有SHA-1的RSA密鑰,這是不再允許的。請使用較新的客戶端或不同的密鑰型別。”
