如何以编程方式配置 JAX-RS 端点?

How can I configure JAX-RS endpoints programmaticaly?

我正试图在我的项目中删除 XML。 我已经尝试添加这个:

JAXRSServerFactoryBean sf = new JAXRSServerFactoryBean();
sf.setResourceClasses(CustomerService.class);
sf.setAddress("http://localhost:9000/");
sf.create();

到我的 Activator class,但我的包不会以此开头。

那么,人们通常如何配置端点?

(抱歉,没有代码,只是来自我的 experience/projects 的一些高级见解)

我使用 jersey 并将其集成到 OSGi 环境中。 IE。 org.glassfish.jersey.servlet.ServletContainer 我注册了所有 jax-rs 资源。这样,我可以使用任何可用的 HTTP 服务器实现(例如,jetty)并通过 OSGi 系统环境属性对其进行配置。

为简单起见,我 re-register 在 ServletContainer 中将 OSGi(声明性)服务注释为单例 resources/endpoints。

也许,CXF也有类似的做法。