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

RESTEasy注释扫描无法找到资源(在Tomcat下)

鲁宏爽
2023-03-14
@ApplicationPath("/rest")
public class WebApi extends Application
{
    @Override
    public Set<Class<?>> getClasses()
    {
        Set<Class<?>> s = new HashSet<>();
        // if line below is uncommented SomeResource works fine
        // s.add(SomeResourceImpl.class);
        return s;
    }
}

资源是接口,实现在派生类中。将批注移动到类本身不会改变什么。

注释或配置有什么问题?或者是否需要其他东西来触发对注释的扫描?

共有1个答案

宗政安歌
2023-03-14

如果使用的是与Servlet3.0规范兼容的Tomcat版本,则需要添加resteasy-servlet-initializer依赖项:

    <dependency>
       <groupId>org.jboss.resteasy</groupId>
       <artifactId>resteasy-servlet-initializer</artifactId>
       <version>${resteasy.version}</version>
   </dependency>

如文件所述:

Resteasy使用Servlet3.0容器中的ServletContainerInitializer集成接口初始化应用程序,自动扫描资源和提供者。要启用自动扫描,还必须在WAR文件中包含resteasy-servlet-initializer工件

 类似资料:
  • 我得到的错误是:无法扫描WEB-INF中的JAX-RS注释,您必须手动注册您的类/资源 我有以下maven配置:

  • 然而,有一个名为resteasy.scan的配置开关,对其进行了描述: “自动扫描WEB-INF/lib jar和WEB-INF/classes目录,查找@provider和JAX-RS资源类(@path、@get、@post等)并注册它们” ...所以,如果我想自动扫描我的资源,而不需要在web.xml中列出它们,或者必须手动将它们的类添加到扩展Application的类中的单例列表中...我应

  • 问题内容: 我有几个需要用名称注释的类,因此我将注释定义为 现在,需要此注释的类定义为 我使用下面的代码来扫描注释 问题是返回的映射包含,但是我需要映射包含作为键,这是Annotation的值而不是bean名称。 有办法吗? 问题答案: 只需获取注释对象并提取值即可 让我知道是否不清楚。

  • 在这段代码的第4行,有一个资源泄漏警告。输入=扫描(); 我想要一个从用户那里获取整数的方法。它会要求用户重新输入一个整数值,如果他以前输入的值是不可接受的,即字符、规格。字符等。此外,我想在返回所取的int之前关闭扫描仪。 如何解决这个问题?

  • 大家好,我的程序员们。 我有一些代码,spring工具套件编辑器的反应也不一样,也许你们一些聪明人知道为什么。 有人能告诉我为什么这是不可能的吗: 但这是!? 第一行代码给了我一个警告“Resource leak:unassigned closeable value is never close”,正如您所看到的,我在try/catch中使用了一个finally,如果对象不为空,它应该总是关闭对象

  • 把这部分的log摘取出来. 以org.nutz.resource下的log为准 2015-03-30 10:49:49,383 org.nutz.resource.Scans.<init>(Scans.java:484) DEBUG - Locations for Scans: [JarResourceLocation [jarPath=D:\nutzbook\apache-tomcat-8.0.