首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >嵌入式码头,泽西2,Weld

嵌入式码头,泽西2,Weld
EN

Stack Overflow用户
提问于 2014-01-08 15:08:30
回答 1查看 2.7K关注 0票数 6

我用的是Jetty 9.1和泽西2.5.1。泽西岛对Jetty的支持是内置的,所以我就这样启动服务器:

代码语言:javascript
运行
复制
public static void main(String[] args) {

    URI baseUri = UriBuilder.fromUri("http://localhost/").port(8080).build();
    ResourceConfig config = ResourceConfig.forApplicationClass(MyApplication.class);

    Server server = JettyHttpContainerFactory.createServer(baseUri, config);
}

MyApplication只是调用this.packages(...)来查找REST类。

但是,REST类包含一个带@Inject注释的字段,该字段应该由焊缝注入。显然,焊缝没有启动(CDI支持没有启用),更奇怪的是,看起来HK2 (由泽西2使用)正在尝试执行注入。

(在访问其他端点时,我有一个org.glassfish.hk2.api.UnsatisfiedDependencyException )。

如何正确设置焊接(最好以编程方式)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-09 15:27:39

我用的是焊接SE:

代码语言:javascript
运行
复制
import org.jboss.weld.environment.se.Weld;
import org.jboss.weld.environment.se.WeldContainer;

然后简单地

代码语言:javascript
运行
复制
Weld weld = new Weld();
try {
    WeldContainer container = weld.initialize();

    URI baseUri = UriBuilder.fromUri("http://localhost/").port(8080).build();
    ResourceConfig config = ResourceConfig.forApplicationClass(MyApplication.class);

    Server server = JettyHttpContainerFactory.createServer(baseUri, config);

    server.join();

} catch (Exception e) {
    e.printStackTrace();
} finally {
    weld.shutdown();
}

请注意,HK2将处理REST类,因此我不得不编写一个绑定器来使注入在这些类中工作。This question helped me a lot

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20999320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档