Servlets 未使用osgi.service.http.whiteboard模式调用Servlet

Servlets 未使用osgi.service.http.whiteboard模式调用Servlet,servlets,jetty,osgi,pax-web,ops4j,Servlets,Jetty,Osgi,Pax Web,Ops4j,目前我正在处理一个问题,如果内容类型格式无效(类型/子类型,其中“/”缺失),jetty将以400的形式返回响应。我需要使用白板模式(osgi.service.http.whiteboard)自定义错误消息。 我注册了一个新的servlet,errorpage模式为“400”,如下所示: @Component( service=Servlet.class, property= { "osgi.http.whiteboard.servlet.errorPa

目前我正在处理一个问题,如果内容类型格式无效(类型/子类型,其中“/”缺失),jetty将以400的形式返回响应。我需要使用白板模式(osgi.service.http.whiteboard)自定义错误消息。 我注册了一个新的servlet,errorpage模式为“400”,如下所示:

@Component(
    service=Servlet.class,
    property= {
        "osgi.http.whiteboard.servlet.errorPage=java.lang.IllegalArgumentException",
        "osgi.http.whiteboard.servlet.errorPage=400"
    },
scope=ServiceScope.PROTOTYPE)
public class ErrorServlet extends HttpServlet{}

然而,我面临的问题是:尽管Jetty发送了一个错误代码“400”,但我的servlet(ErrorServlet)没有被调用来处理它。

您没有提到您正在使用哪个白板服务实现。我可能理解错了答案。。。我正在使用org.osgi.service.http.whiteboard。这就是你要问的吗。基本上,我是按照osgi白板文档编写代码的。如果我误解了你的观点,请纠正我。由于你使用的是OSGi和错误处理,请确保你运行的是Jetty的最新稳定版本(代码中在这方面做了大量工作)。使用版本
9.4.30.v20200611
。你把这个包裹放在哪里?在哪个OSGi运行时?(Karaf?Felix?Equinox?other?)在这个OSGi运行时运行的白板实现是什么?(PaxWeb?Felix.Http?)