2016-06-07 6 views
0

В настоящее время у меня проблемы с работой. Я на мгновение ударился головой и надеялся, что кто-то здесь сможет оказать некоторую помощь. Я хотел бы указать, что это мой первый вопрос здесь, поэтому я приношу свои извинения, если он может быть лучше отформатирован, пожалуйста, не стесняйтесь, дайте мне знать, если я что-то добавлю.Использование Jetty в качестве сервера приложений Java EE

Наше приложение работает довольно успешно с сервера TomEE в течение последних нескольких месяцев, но в последнее время некоторые более высокие взлеты в нашей компании говорят нам, что мы ДОЛЖНЫ использовать Jetty. К сожалению, попытка отговорить их от этого не будет вариантом, если мы не сможем доказать, что Jetty на самом деле невозможно для нас.

С тех пор я пытался настроить сервер Jetty, но я сосредоточен на использовании плагина maven-jetty. У нас был большой успех с плагином tomee-maven в прошлом, поэтому я надеялся, что это будет так же эффективно.

К сожалению, нам не повезло с этим подходом. Я понимаю, что Jetty не является сервером JavaEE, поэтому мы попытались добавить зависимости. Взгляните на наш подход:

  <plugin> 
      <groupId>org.eclipse.jetty</groupId> 
      <artifactId>jetty-maven-plugin</artifactId> 
      <version>9.3.9.v20160517</version> 
      <dependencies> 
       <dependency> 
        <groupId>org.apache.openejb</groupId> 
        <artifactId>javaee-api</artifactId> 
        <version>6.0-6</version> 
       </dependency> 
       <dependency> 
        <groupId>org.hibernate</groupId> 
        <artifactId>hibernate-validator</artifactId> 
        <version>4.3.2.Final</version> 
       </dependency> 
       <dependency> 
        <groupId>org.jboss.weld.se</groupId> 
        <artifactId>weld-se-core</artifactId> 
        <version>1.1.33.Final</version> 
       </dependency> 
       <dependency> 
        <groupId>org.apache.openejb</groupId> 
        <artifactId>openejb-core</artifactId> 
        <version>4.7.4</version> 
       </dependency> 
      </dependencies> 
     </plugin> 

К сожалению, все попытки связаться с нашей заявки на тот же URL, как мы использовали в TomEE дал нам 404. Обратите внимание, что наш Java-код не изменился вообще, поскольку пытается перенести к Jetty.

Я много сделал для Googling и придумал очень мало. This Вопрос SE был найден, но он был записан в дни Jetty 6. Мы используем Jetty 9, поэтому версия сервлета больше не проблема.

Итак, кто-нибудь здесь думает, что это можно сделать?

Дополнительная информация: Мы используем JavaEE 6, Мы ориентируемся на получение идентификаторов CDI и Bean, другие функции EE несущественны.

+0

Это полностью выполнимо и, вероятно, не слишком сложно, но вы можете начать с проекта скелета. Вероятно, этого недостаточно, чтобы просто добавить зависимости maven. Просто привыкнуть к старту и самому разоблачить сервлет. Затем добавьте сварку и любые другие функции, которые вам нужны. Например, следуйте инструкциям в документах по сварке: http://www.eclipse.org/jetty/documentation/9.3.x/framework-weld.html –

+0

Кроме того, возможно, это сработало. Причал запускается в другом порту по умолчанию, чем tomcat. –

+0

Я также начал бы стоять с вашим приложением с распределением причала, позволяя при необходимости использовать модуль cdi и т. Д. Затем, как только вы вернетесь к плагину maven для разработки. Вы никогда не должны использовать какой-либо плагин maven для сценариев развертывания «production». –

ответ

0

openejb и сварные швы, вероятно, не будут работать вместе, поэтому используйте openwebbeans (транзитивные с openejb) или не используйте openejb, если вам нужно использовать сварку.

Тогда, к сожалению, нет никакой интеграции openejb с причалом, поэтому в зависимости от того, что вы используете, вы можете просто запустить openejb в сторону причала в фильтре или какой-либо крючок для запуска или вам придется интегрировать их самостоятельно для более продвинутой интеграции.