Интеграция 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>
Я нашел запись в блоге, которая будет полезна для людей, которые будут иметь дело с той же проблемой в будущем: