当前位置: 首页 > 知识库问答 >
问题:

泽西岛 2:我的应用程序事件接收器被忽略。如何排查此问题?

宋烨烁
2023-03-14

我使用的是球衣2。这是一个我自己没有设置的应用程序。我按照这个答案中的说明:https://stackoverflow.com/a/33271754

但是,这并没有做任何事情。我在每个方法上都放置了断点,无论是在启动时还是在抛出的异常时,都不会调用它们。我用谷歌搜索了一下,读到我需要在网络上注册它.xml用这样的一行:

  <servlet>
        <servlet-name>jersey-serlvet</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
        <init-param>
             <param-name>jersey.config.server.provider.packages</param-name>
             <param-value>com.mypackage.rest</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

但是,我的ExceptionLogger已经在这个包中了。官方文档给出了ResourceConfig类的示例,但我的项目中不存在该类(尽管应用程序运行良好)。

我不一定要问我做错了什么,我想知道如何从泽西岛2中获取一些信息,以便我可以对我做错了什么进行故障排除。它不会在启动时吐出任何日志,但是当我点击它时,该应用程序似乎运行正常。是否有我可以设置为一个属性,它将打印有关如何搜索应用程序事件查看器之类的内容的调试信息?

我想出了解决办法。我需要把这个添加到我的web.xml中:

  <init-param>
      <param-name>jersey.config.server.provider.classnames</param-name>
      <param-value>org.glassfish.jersey.filter.LoggingFilter;com.mypackage.rest.ExceptionLogger</param-value>
  </init-param>

谁能给我解释一下为什么<代码>。packages参数不会生成< code >。类名多余?

共有1个答案

秦安宁
2023-03-14

侦听器需要使用@Provider进行注释。这就是包扫描正在寻找的:使用@Path@Provider进行注释的类。它注册它找到的所有类。

当您使用时,您不需要使用@Provider,因为您明确地告诉泽西要注册哪些类。

 类似资料:
  • 我目前使用的是球衣 我现在要做的是设置泽西,这样当查询参数进来时(比如缩进),我可以告诉Jackson以“更漂亮的格式,也就是缩进”序列化JSON。您可以通过使用SerializationConfig.Feature.INDENT_OUTPUT配置JSON映射器来轻松地告诉Jackson这样做。 问题是,我如何在每个请求的基础上获取一个queryparam并使用它来修改Jackson的输出?

  • 我有以下Servlet: 我有以下客户: PHP中的服务器测试代码-获取“Key”的字符串值,并将值输出到文件中 PHP测试脚本有效。它接收帖子,我可以在服务器上的文本文件中查看data1。但是Servlet@POST方法似乎没有被调用。 还有什么可以调试的吗?有人有什么想法可以让它工作吗?我不确定是否应该使用@FormParam或@QueryParam或@HeaderParam。@POST方法是

  • 我有一个问题,让昂首阔步的博士一代工作。 以下是我使用的专家: 我在ResourceConfig类中添加了swagger ressources: 然后我声明了一个 servlet 来配置 Swagger: 通过上面的配置,可以使用swagger servlet:如果我浏览到api文档url,我会得到以下信息: 但是,如果我使用如下所示的真实配置更改 swagger servlet 配置中的 api

  • 我想问一个关于泽西岛申请的基本问题 是否可以在基本URL中添加和显示HTML内容?如果可能,我该如何实现它? 我用球衣2号。x应用。< br >通常,我扩展ResourceConfig来实现并设置ApplicationPath为“/api”。此外,我在测试类中将资源路径设置为“test ”,并用“GET”请求定义testResp()。< br >我使用maven构建service.war并部署在本

  • 编辑:这是ackson jaxrs-base早期版本中的一个问题,已在jackson-jaxrs-base-2.8中解决。https://github.com/FasterXML/jackson-jaxrs-providers/issues/22 我正在努力解决这个问题,只有mapper例外。我想映射com的所有子级。fasterxml。杰克逊。果心JsonProcessingException在

  • 我正在尝试将以下有效负载发布到我基于Jersey的web服务: 我的泽西岛代码: 就在Jersey给我打电话的时候,我停下了,我看到了我正在寻找的地址(上面JSON中的内容)。然而,我的数据元组不在那里。我知道Jersey正在为地址es调用我的无参数构造函数,它的setters也在被调用,但是我还没睡,因为Jersey可能会也可能不会尝试对JSON中的这些随机("数据")元组做些什么。(我说“随机