Интеграция Tomcat EJB в веб-приложение

Я должен использовать Tomcat для веб-разработки в университете. Я посмотрел на TomEE. Но мне не разрешено изменять экземпляр tomcat на сервере. Я интегрировал JSF,CDI с Maven. И я пытаюсь интегрировать OpenEJB с Maven и получил ошибку:

Failed to execute goal on project itarchitectMobile: 
Could not resolve dependencies for project   
tdpess14Team3_2:itarchitectMobile:war:1.0SNAPSHOT:
Could not find artifact org.apache.openejb:openejb:jar:4.6.0.1 in central
(http://repo.maven.apache.org/maven2) -> [Help 1]

To see the full stack trace of the errors, re-run Maven with the -e switch.
Re-run Maven using the -X switch to enable full debug logging.

Вот мои зависимости в pom.xml:

 <properties>
    <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>
    <dependency>
    <groupId>org.apache.tomcat</groupId>  
    <artifactId>tomcat-servlet-api</artifactId>  
    <version>7.0.53</version>  
    <scope>provided</scope>  
</dependency>
    <dependency>  
  <groupId>org.hibernate</groupId>  
  <artifactId>hibernate-core</artifactId>  
  <version>4.0.0.Final</version>  
</dependency>  
<dependency>  
  <groupId>org.hibernate</groupId>  
  <artifactId>hibernate-entitymanager</artifactId>  
  <version>4.0.0.Final</version>  
</dependency>  
<dependency>  
  <groupId>org.hibernate.javax.persistence</groupId>  
  <artifactId>hibernate-jpa-2.0-api</artifactId>  
  <version>1.0.1.Final</version>  
  <scope>provided</scope>  
</dependency>  
<dependency>  
    <groupId>org.hibernate.java-persistence</groupId>  
    <artifactId>jpa-api</artifactId>  
    <version>2.0-cr-1</version>  
</dependency> 
<dependency>
    <groupId>org.apache.openejb</groupId>
    <artifactId>openejb</artifactId>
    <version>4.6.0.1</version>
</dependency>

<dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-web-api</artifactId>
    <version>6.0</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>org.hsqldb</groupId>
    <artifactId>hsqldb</artifactId>
    <version>2.3.2</version>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>org.glassfish</groupId>
    <artifactId>javax.faces</artifactId>
    <version>2.2.2</version>
</dependency>
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>
<dependency>
    <groupId>javax.el</groupId>
    <artifactId>javax.el-api</artifactId>
    <version>3.0.0</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>org.jboss.weld.servlet</groupId>
    <artifactId>weld-servlet</artifactId>
    <version>1.1.19.Final</version>
</dependency>
</dependencies>

Что-то не так с моим пом? Я нашел только учебники, которые показывают, как интегрировать Tomee в сервер Tomcat.

3 ответа

Решение

Если целевой сервер приложений не является контейнером EJB, вы не сможете включить поддержку EJB в свое приложение. EJB - это не только библиотека, ваш целевой сервер должен быть EJB-совместимым.

Это было давно, но некоторые могли найти это полезным. Вы можете использовать EJB с tomcat, но вы должны включить следующие зависимости в ваш проект maven:

<dependency>
    <groupId>org.apache.openejb</groupId>
    <artifactId>javaee-api</artifactId>
    <version>6.0-6</version>
    <scope>provided</scope>
</dependency>

<dependency>
    <groupId>org.apache.openejb</groupId>
    <artifactId>openejb-core</artifactId>
    <version>4.7.4</version>
</dependency>

<dependency>
    <groupId>org.apache.openejb</groupId>
    <artifactId>apache-tomee</artifactId>
    <version>1.7.4</version>
</dependency>

Я нашел запись в блоге, которая будет полезна для людей, которые будут иметь дело с той же проблемой в будущем:

http://rmannibucau.wordpress.com/2014/05/30/war-overlay-tomee-to-deploy-your-ee-application-in-tomcat/

Другие вопросы по тегам