0

我可以通过执行以下操作向 grizzly 发布球衣服务

final String baseUri = "http://localhost:51000";
final Map<String, String> initParams = new HashMap<String, String>();
initParams.put("com.sun.jersey.config.property.packages", "my.rest.service");
SelectorThread threadSelector = GrizzlyWebContainerFactory.create(baseUri, initParams);

因此,将扫描指定的包以查找任何带有注释的服务类@Path,并将它们初始化。我的问题是,有没有办法指定一个预先初始化的球衣服务类——通过自定义工厂初始化,甚至只是通过 new MyService() 初始化——并将其发布到 Grizzly 或任何其他容器?

4

2 回答 2

1

或任何其他容器?

如果您添加附加的 jersey 模块并使用SimpleServerFactory ,Jersey 还支持 SimpleHttp 容器。

ResourceConfig config = new DefaultResourceConfig();
config.getSingletons().add(new MyInstantiatedResource());

String serverBase = "http://localhost:8080/foo";
Closeable server = SimpleServerFactory.create(serverBase, config);
于 2012-02-16T10:50:55.763 回答
1

您可以使用 GrizzlyServerFactory.create(URI u, ResourceConfig rc) 并将您的单例添加到提供的 ResourceConfig。IE:

final String baseUri = "http://localhost:51000";
final ResourceConfig rc = new PackagesResourceConfig("my.rest.service");
rc.getSingletons().add(new MyInstantiatedResource());
SelectorThread threadSelector = GrizzlyServerFactory.create(baseUri, rc);
于 2012-02-16T10:44:01.047 回答