一尘不染

在Tomcat上运行的Errai 4

tomcat

我试图让Tomcat上的Errai4.0.0.Beta1运行,我想知道以前是否有人这样做过?具体来说,我正在尝试确定可以从Errai(即Wildfly)中删除哪些依赖项,以及使Errai应用程序在Tomcat上运行所需的任何其他步骤。

当我运行它时,我将更新此帖子。

提前致谢。


阅读 250

收藏
2020-06-16

共1个答案

一尘不染

为了展示如何在 Tomcat* 服务器上运行 Errai 4 Maven项目,我在GitHub上创建了一个名为errai-tutorial-
tomcat的项目

*

先决条件

您的Errai Webapp必须安装在本地Maven存储库中(mvn install)

创建一个新的Maven项目 (战争打包)并导入以前的Webapp

例如:errai-tutorial(https://github.com/errai/errai-
tutorial)

    <dependency>
        <groupId>org.jboss.errai.demo</groupId>
        <artifactId>errai-tutorial</artifactId>
        <version>1.0.0-SNAPSHOT</version>
        <type>war</type>
    </dependency>

添加Tomcat缺少的依赖项

  1. 焊接Servlet核心(https://docs.jboss.org/weld/reference/2.3.4.Final/en-US/html/environments.html#weld-servlet

    <dependency>
    <groupId>org.jboss.weld.servlet</groupId>
    <artifactId>weld-servlet-core</artifactId>
    <version>2.3.4.Final</version>
    

  2. 泽西岛JAX-RS核心Servlet 2.x实现

    <dependency>
    <groupId>org.glassfish.jersey.containers</groupId>
    <artifactId>jersey-container-servlet-core</artifactId>
    <version>2.23.1</version>
    

  3. Java Persistence 2.0(JSR 317)API的hibernate定义。

    <dependency>
    <groupId>org.hibernate.javax.persistence</groupId>
    <artifactId>hibernate-jpa-2.0-api</artifactId>
    <version>1.0.1.Final</version>
    

在Web.xml文件中添加Weld Servlet侦听器

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

在Web.xml文件中添加BeanManager参考

<resource-env-ref>     
    <resource-env-ref-name>BeanManager</resource-env-ref-name>
    <resource-env-ref-type>javax.enterprise.inject.spi.BeanManager </resource-env-ref-type>
</resource-env-ref>

在Web.xml文件中添加Jersey JAX-RS核心Servlet

<servlet> 
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <servlet-name>javax.ws.rs.core.Application</servlet-name> 
    <load-on-startup>2</load-on-startup> 
</servlet>

在META-INF目录中添加context.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<Context>

    <Resource name="BeanManager"
                  auth="Container"
                  type="javax.enterprise.inject.spi.BeanManager"
                  factory="org.jboss.weld.resources.ManagerObjectFactory"/>

</Context>
2020-06-16