Rest JavaSE中的Weld(CDI)和Jersey服务器(JAX-RS)引导

Rest JavaSE中的Weld(CDI)和Jersey服务器(JAX-RS)引导,rest,jersey,cdi,bootstrapping,weld,Rest,Jersey,Cdi,Bootstrapping,Weld,我试图找出如何正确引导Weld(3.0.0)和Jersey服务器(1.19.3)一起使用JavaSE建立Rest服务器。我不是!谈论JEE解决方案。应用服务器在这里做得很好。 我希望它没有我不需要的所有LIB的独立。 我的问题是jersey服务器以自己的方式实例化所有REST服务类,而不是使用weld。因此@Inject当然不起作用。 IOCInstantatedComponentProvider在这里有帮助吗?这是Hammock提供的功能,但是如果您只想利用代码,这很好。这就是开源的美妙之处-

我试图找出如何正确引导Weld(3.0.0)和Jersey服务器(1.19.3)一起使用JavaSE建立Rest服务器。我不是!谈论JEE解决方案。应用服务器在这里做得很好。 我希望它没有我不需要的所有LIB的独立。 我的问题是jersey服务器以自己的方式实例化所有REST服务类,而不是使用weld。因此@Inject当然不起作用。
IOCInstantatedComponentProvider在这里有帮助吗?

这是Hammock提供的功能,但是如果您只想利用代码,这很好。这就是开源的美妙之处-

具体地说,您需要实例化
JerseyServlet
,并提供一个名为
jersey.config.servlet.internal.resourceConfig\u JerseyServlet
ServletContextAttribute
,指向
Application
对象的
resourceConfig
对象,或者所有类都在其中注册。我们用刮刀刮这些课。我会说我使用的是Jersey 2而不是Jersey 1,我怀疑Jersey 1(它是为CDI 1.0设计的)是否适用。注意,您仍然需要一个servlet容器

如果您想利用吊床,只需将这些依赖项添加到您的项目中(我在下面使用Jetty,但您也可以使用嵌入式tomcat或undertow):


吊床
休闲服
吊床
bootstrap-3
吊床
网状码头

然后您只需提供一些带注释的rest资源和一个
beans.xml

谢谢您的回答,但我希望占用的“空间”更小。您自己也说过:仍然需要一个servlet容器。所以我在寻找“更小”的东西。提到old jersey 1.X无法处理CDI2也很有帮助。呃,我想你可能误读了。除非您希望使用grizzly,这正是我所描述的(嵌入式tomcat、jetty、undertow都只是嵌入式JAR,您仍然需要一些东西来处理实际的HTTP请求,而jersey没有这样做)嗨,我的错。。。你是对的。通过使用“jersey server”,我认为它将通过调用HtpServer=HttpServerFactory.create(getURI())自动附带一个最小的Http服务器。检查导入和一些交付的类http服务器是jdk中捆绑的服务器。因为它在sun.com.net.xxx的深处,所以不应该使用它=>我一定会试试吊床。塔克斯
<dependency>
 <groupId>ws.ament.hammock</groupId>
 <artifactId>rest-jersey</artifactId>
</dependency>
<dependency>
 <groupId>ws.ament.hammock</groupId>
 <artifactId>bootstrap-weld3</artifactId>
</dependency>
<dependency>
 <groupId>ws.ament.hammock</groupId>
 <artifactId>web-jetty</artifactId>
</dependency>