Errai 4 работает на Tomcat

Я пытаюсь запустить Errai 4.0.0.Beta1 в Tomcat, и мне интересно, делал ли кто-нибудь это раньше? В частности, я пытаюсь определить, какие зависимости я могу удалить из Errai (например, Wildfly), и любые дополнительные шаги, необходимые для запуска приложения Errai на Tomcat.

Когда я запущу это, я обновлю этот пост.

Заранее спасибо.


person randymay    schedule 09.05.2016    source источник
comment
На какую версию Tomcat вы ориентируетесь?   -  person Stéphane B.    schedule 13.05.2016
comment
Я ориентируюсь на Tomcat 7.   -  person randymay    schedule 14.05.2016


Ответы (2)


Чтобы показать, как запустить проект Errai 4 Maven на сервере Tomcat, я создал проект на GitHub под названием errai-tutorial-tomcat.

Предпосылки

Ваше веб-приложение Errai должно быть установлено в локальном репозитории Maven (mvn install).

Создайте новый проект Maven (военная упаковка) и импортируйте предыдущее веб-приложение.

например: 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. Ядро сервлета Weld ( 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>
    </dependency>        
    
  2. Реализация Servlet 2.x ядра JAX-RS на Джерси

    <dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-servlet-core</artifactId>
        <version>2.23.1</version>
    </dependency>
    
  3. Определение режима гибернации API Java Persistence 2.0 (JSR 317).

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

Добавить прослушиватель Weld Servlet в файл Web.xml

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

Добавить ссылку на BeanManager в файл Web.xml

<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>

Добавить основной сервлет Jersey JAX-RS в файл Web.xml

<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>

Добавить файл context.xml в каталог META-INF

<?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>
person Stéphane B.    schedule 22.06.2016
comment
Эта ваша реализация/конфигурация полностью поддерживает функции Errai, такие как BUS, JAX-RS с интерфейсом и классом реализации, где маршрутизация (@GET @POST @Path) объявлена ​​только в интерфейсе? Это поддержка событий кросс-сервер-клиенты. У меня многомодульный проект maven, работающий на tomcat, но я не могу заставить это работать. Сейчас мучаюсь с переходом на Wildfly, но пока безуспешно. - person masterdany88; 24.01.2017
comment
Код моего демонстрационного приложения, размещенного на Github, теперь может отправлять сообщения на сервер с помощью клиентской шины Errai: github .com/stbland/test-errai4-tomcat - person Stéphane B.; 03.02.2017

Чтобы показать, как запустить проект Maven Errai 4 (4.1.3.Final) на сервере Tomcat (7.x или 8.x), я создал еще один проект с нуля. на GitHub под названием test-errai4-tomcat.

На данный момент он отображает простую форму, которая может:

  • отправить сообщение на сервер с помощью клиентской шины Errai.
  • вызов службы REST с помощью Errai JAX-RS
person Stéphane B.    schedule 24.06.2016