2014-12-29 124 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

相關問題