2014-12-29 127 views
2

我在我的JSF Web应用程序中嵌入了Jetty 9.2服务器。通过启用Weld模块,在Jetty 9.1+中启用Weld应该非常容易,但是我认为无法使用嵌入式服务器来完成此任务。有没有例子说明如何做到这一点,哪些类受到影响?如何使用焊接模块配置嵌入式Jetty

这些都是我的听众在web.xml:

<listener> 
    <listener-class>org.jboss.weld.environment.servlet.BeanManagerResourceBindingListener</listener-class> 
</listener> 
<listener> 
    <listener-class>org.jboss.weld.environment.servlet.Listener</listener-class> 
</listener> 

这是我怎样,我开始我的服务器:

Server theServer = new Server(); 
    ServerConnector connector = new ServerConnector(theServer); 
    connector.setHost(getHost()); 
    connector.setPort(getPort()); 
    connector.setIdleTimeout(getTimeout()); 
    theServer.addConnector(connector); 
    WebAppContext webApp = new WebAppContext(); 
    webApp.setContextPath("/"); 
    File f = new File(getFileName()); 
    webApp.setWar(f.getAbsolutePath()); 
    webApp.setServer(theServer); 
    theServer.setHandler(webApp); 
    theServer.start(); 
    theServer.join() 
+0

看起来你的例子是基于一个爆炸战争文件,在这种情况下,它应该完全相同。也许还有一个不同的问题呢?你有没有堆栈痕迹? –

+0

似乎没有任何所需的WebApp配置定义存在。这是一个完整的服务器示例吗? –

+0

对于有人仍然摔跤[试试这个答案](http://stackoverflow.com/questions/21624540/how-to-embed-weld-into-jetty-9-to-have-cdi-in-my-java-maven -project/33660160#33660160) – Bwire

回答

0

我从杰西·麦康奈尔一些帮助在WebTide。

我需要将以下文件添加到我的类路径:https://github.com/eclipse/jetty.project/blob/master/jetty-cdi/src/main/config/modules/cdi.mod

我还需要到码头-CDI jar添加到我的聚甲醛。

+0

你介意分享你的代码吗?我试图用jetty设置cdi,你的方法看起来很有希望,但是我仍然在我的servlet中注入对象上得到了一个N​​PE ... –

+0

我得到了相当远的,但不是所有的方式,因为我在一个紧迫的截止日期之后,我转向嵌入Tomcat,这对于Tomcat Maven插件来说非常简单。 Balus C在使用servlet容器启用Weld方面发表了一篇很好的博客文章,尽管只有几个版本,但仍然大部分是有效的,并且我只需要运行嵌入式Tomcat即可。 – Ramesh

相关问题