JAX-RS Jersey / Grizzly定义接口资源

时间:2011-07-18 00:45:12

标签: jersey jax-rs grizzly

示例here使用Grizzly容器部署示例资源。 它使用定义为类的资源,而不是我想用注释定义接口并让资源类实现该接口。

现在的问题是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");

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

1 个答案:

答案 0 :(得分:1)

您不能使用包扫描,因为它只查找带有JAX-RS注释的类。您必须使用不同的方法:Jersey用户指南中提到的configuration options之一允许您明确声明您的资源类,或者您也可以使用jersey-spring来管理您的实例。使用平针织弹簧,没有额外的步骤可以使用您想要的界面。您只需注释接口,使实现成为一个Spring bean,它就可以工作。