【问题标题】:How to configure embedded Jetty with weld module如何使用焊接模块配置嵌入式 Jetty
【发布时间】:2014-12-29 06:22:55
【问题描述】:

我在我的 JSF Web 应用程序中嵌入了一个 Jetty 9.2 服务器。通过启用 Weld 模块在 Jetty 9.1+ 中启用 Weld 应该很容易,但我认为嵌入式服务器无法做到这一点。是否有任何示例说明如何执行此操作,以及哪些类会受到影响?

这些是我在 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()

【问题讨论】:

  • 看起来你的例子是基于一个分解的战争文件,在这种情况下它应该工作完全一样。也许游戏中有不同的问题?你有任何堆栈跟踪吗?
  • 似乎没有所需的 WebApp 配置定义。这是一个完整的服务器示例吗?
  • 对于还在摔跤的人try this answer

标签: java jetty cdi weld


【解决方案1】:

我从 WebTide 的 Jesse McConnell 那里得到了一些帮助。

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

我还需要将 jetty-cdi jar 添加到我的 pom 中。

【讨论】:

  • 您介意分享您的代码吗?我正在尝试使用码头设置 cdi,您的方法似乎很有希望,但我仍然在我的 servlet 中的注入对象上获得 NPE ...
  • 我已经走了很远,但不是一路走来,而且由于我的时间紧迫,我切换到嵌入 Tomcat,这很容易使用 Tomcat Maven 插件。 Balus C 有一篇关于使用 servlet 容器启用 Weld 的不错的博文,虽然有几个版本旧,但大部分仍然有效,并且是我运行嵌入式 Tomcat 所需要的全部内容。
猜你喜欢
  • 2022-11-23
  • 2017-07-05
  • 1970-01-01
  • 2018-11-22
  • 2013-11-01
  • 1970-01-01
  • 2013-12-25
  • 2021-12-14
  • 1970-01-01
相关资源
最近更新 更多