1

按照此处的示例使用 Grizzly 容器部署示例资源。它使用定义为类的资源,而不是我想定义一个带有注释的接口并让资源类实现该接口。

现在的问题是灰熊抱怨它找不到资源:

com.sun.jersey.api.container.ContainerException: The ResourceConfig instance does not     contain any root resource classes.

在 Main 类中,“com.mycompany.pack”是包含实现类的包:

final String baseUri = "http://localhost:9999/";
final Map<String, String> initParams = new HashMap<String, String>();
initParams.put("com.sun.jersey.config.property.packages", "com.mycompany.pack");

[编辑]:但是在类上添加注释时它也可以工作。如果有办法只在接口级别声明注释。

4

1 回答 1

1

您不能通过包扫描来做到这一点,因为它只会查找带有 JAX-RS 注释的类。您必须使用不同的方法:或者使用Jersey 用户指南中提到的配置选项之一,让您显式声明您的资源类,或者您也可以使用jersey-spring来管理您的实例。使用 jersey-spring,无需额外步骤即可使用您想要的界面。您只需注释接口,使实现成为 Spring bean,它就可以工作。

于 2011-07-18T02:51:18.453 回答