使用 Jetty9 Ioc 的服务器实例的错误处理程序
Error Handler For Server Instance using Jetty9 Ioc
我一直在尝试设置一个带有常见错误处理的码头服务器。我正在使用 jetty 9.4.44.v20210927 家庭发行版。根据 jetty-9 doc,我写了一个 class 扩展 ErrorHandler
class 并覆盖 handle()
方法。我将其导出为 jar 并将其包含在 lib/ext 中,并且 class 正在被发现并正确加载(使用 --debug
和 -Dorg.eclipse.jetty.LEVEL=DEBUG
标志进行验证)。我还按照文档中的说明将其添加到 jetty.xml 服务器实例。无论做了什么更改,错误仅由默认的 ErrorPageErrorHandler 处理,而不是我的自定义 class。这是我拥有的 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 来实现这一点。
您想使用Server.setErrorHandler(ErrorHandler)
所以这意味着...
<?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
用于基于 non-webapp 的请求,甚至是具有无法分派到 Web 应用程序的错误的请求。
每个 Web 应用程序都会有自己独特的 ErrorPageErrorHandler
,在部署 Web 应用程序时创建。
我一直在尝试设置一个带有常见错误处理的码头服务器。我正在使用 jetty 9.4.44.v20210927 家庭发行版。根据 jetty-9 doc,我写了一个 class 扩展 ErrorHandler
class 并覆盖 handle()
方法。我将其导出为 jar 并将其包含在 lib/ext 中,并且 class 正在被发现并正确加载(使用 --debug
和 -Dorg.eclipse.jetty.LEVEL=DEBUG
标志进行验证)。我还按照文档中的说明将其添加到 jetty.xml 服务器实例。无论做了什么更改,错误仅由默认的 ErrorPageErrorHandler 处理,而不是我的自定义 class。这是我拥有的 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 来实现这一点。
您想使用Server.setErrorHandler(ErrorHandler)
所以这意味着...
<?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
用于基于 non-webapp 的请求,甚至是具有无法分派到 Web 应用程序的错误的请求。
每个 Web 应用程序都会有自己独特的 ErrorPageErrorHandler
,在部署 Web 应用程序时创建。