2016-05-15 3 views
1

Ну, теперь я начинаю с tomee, мой pom.xml настроен для использования с tomcat. Итак, я не уверен, что мне нужно удалить или добавить для работы с Tomey с технологиями следующего поколения: JPA, CDI, EJB, HIBERNATE.Настройка pom.xml для работы с tomee

Я настроил мой pom.xml следующим образом:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>br.com</groupId> 
    <artifactId>cedoc</artifactId> 
    <packaging>war</packaging> 
    <version>0.0.1-SNAPSHOT</version> 
    <name>cedoc Maven Webapp</name> 
    <url>http://maven.apache.org</url> 
    <properties> 
    </properties> 
    <dependencies> 

     <!-- FOR TOMEE --> 
     <dependency> 
      <groupId>org.apache.openejb</groupId> 
      <artifactId>openejb-core</artifactId> 
      <version>4.7.4</version> 
      <scope>provided</scope> 
     </dependency> 

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

     <dependency> 
      <groupId>joda-time</groupId> 
      <artifactId>joda-time</artifactId> 
      <version>2.3</version> 
     </dependency> 

     <dependency> 
      <groupId>commons-jxpath</groupId> 
      <artifactId>commons-jxpath</artifactId> 
      <version>1.3</version> 
     </dependency> 


     <dependency> 
      <groupId>br.com.jwebbuild</groupId> 
      <artifactId>jwebbuild</artifactId> 
      <version>2.0</version> 
     </dependency> 

     <!-- JASPER REPORT IMPORTS --> 

     <dependency> 
      <groupId>org.apache.poi</groupId> 
      <artifactId>poi</artifactId> 
      <version>3.10-FINAL</version> 
     </dependency> 


     <dependency> 
      <groupId>net.sourceforge.barbecue</groupId> 
      <artifactId>barbecue</artifactId> 
      <version>1.5-beta1</version> 
     </dependency> 


     <dependency> 
      <groupId>net.sf.jasperreports</groupId> 
      <artifactId>jasperreports</artifactId> 
      <version>5.0.1</version> 
     </dependency> 

     <dependency> 
      <groupId>net.sf.jasperreports</groupId> 
      <artifactId>jasperreports-fonts</artifactId> 
      <version>4.0.0</version> 
     </dependency> 

     <dependency> 
      <groupId>xerces</groupId> 
      <artifactId>xercesImpl</artifactId> 
      <version>2.10.0</version> 
     </dependency> 


     <!-- FIM JASPER RESPORT IMPORTS --> 

     <dependency> 
      <groupId>org.primefaces.extensions</groupId> 
      <artifactId>primefaces-extensions</artifactId> 
      <version>3.0.0</version> 
     </dependency> 



     <dependency> 
      <groupId>org.primefaces</groupId> 
      <artifactId>primefaces</artifactId> 
      <version>5.1</version> 
     </dependency> 

     <dependency> 
      <groupId>org.primefaces.themes</groupId> 
      <artifactId>all-themes</artifactId> 
      <version>1.0.10</version> 
     </dependency> 



     <dependency> 
      <groupId>com.sun.faces</groupId> 
      <artifactId>jsf-api</artifactId> 
      <version>2.2.12</version> 
      <scope>provided</scope> 
     </dependency> 


     <dependency> 
      <groupId>com.sun.faces</groupId> 
      <artifactId>jsf-impl</artifactId> 
      <version>2.2.12</version> 
      <scope>provided</scope> 
     </dependency> 

     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>jstl</artifactId> 
      <version>1.2</version> 
      <scope>provided</scope> 
     </dependency> 

     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>javax.servlet-api</artifactId> 
      <version>3.1.0</version> 
      <scope>provided</scope> 
     </dependency> 

     <!-- HIBERNATE --> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-core</artifactId> 
      <version>3.6.10.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-entitymanager</artifactId> 
      <version>3.6.10.Final</version> 
     </dependency> 

     <!-- Hibernate c3p0 connection pool --> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-c3p0</artifactId> 
      <version>3.6.3.Final</version> 
     </dependency> 

     <dependency> 
      <groupId>cglib</groupId> 
      <artifactId>cglib-nodep</artifactId> 
      <version>2.2.2</version> 
     </dependency> 
     <dependency> 
      <groupId>javassist</groupId> 
      <artifactId>javassist</artifactId> 
      <version>3.12.1.GA</version> 
     </dependency> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-api</artifactId> 
      <version>1.6.1</version> 
     </dependency> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-simple</artifactId> 
      <version>1.6.1</version> 
     </dependency> 
     <dependency> 
      <groupId>asm</groupId> 
      <artifactId>asm-commons</artifactId> 
      <version>3.1</version> 
     </dependency> 
     <dependency> 
      <groupId>net.sf.ehcache</groupId> 
      <artifactId>ehcache</artifactId> 
      <version>2.7.4</version> 
     </dependency> 

     <dependency> 
      <groupId>log4j</groupId> 
      <artifactId>log4j</artifactId> 
      <version>1.2.17</version> 
     </dependency> 

     <dependency> 
      <groupId>commons-net</groupId> 
      <artifactId>commons-net</artifactId> 
      <version>3.3</version> 
     </dependency> 


     <dependency> 
      <groupId>commons-fileupload</groupId> 
      <artifactId>commons-fileupload</artifactId> 
      <version>1.3</version> 
     </dependency> 


     <dependency> 
      <groupId>javax.annotation</groupId> 
      <artifactId>jsr250-api</artifactId> 
      <version>1.0</version> 
     </dependency> 

     <dependency> 
      <groupId>org.omnifaces</groupId> 
      <artifactId>omnifaces</artifactId> 
      <version>1.11-M1</version> 
     </dependency> 

    </dependencies> 

    <repositories> 
     <repository> 
      <id>prime-repo</id> 
      <name>PrimeFaces Maven Repository</name> 
      <url>http://repository.primefaces.org</url> 
      <layout>default</layout> 
     </repository> 

     <repository> 
      <id>java.net2.m2</id> 
      <name>Java.net m2 repo</name> 
      <url>http://download.java.net/maven/2</url> 
     </repository> 
    </repositories> 

    <build> 
     <finalName>cedoc</finalName> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-pmd-plugin</artifactId> 
       <version>2.5</version> 
       <configuration> 
        <targetJdk>1.6</targetJdk> 
       </configuration> 
      </plugin> 

      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.1</version> 
       <configuration> 
        <source>1.6</source> 
        <target>1.6</target> 
       </configuration> 
      </plugin> 

     </plugins> 
     <resources> 
      <resource> 
       <directory>src/main/resources</directory> 
      </resource> 
     </resources> 
    </build> 
</project> 

Но я получил некоторые ошибки, см:

при запуске сервера я получил ошибку:

Caused by: java.lang.ClassNotFoundException: org.jboss.weld.environment.servlet.Listener 

Что такое точно libs я должен добавить в pom.xml для использования tomee и какой области?

ответ

4

Если вы разрабатываете приложение Vanilla JavaEE, вы не нужна эта зависимость:

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

Почему? Поскольку TomEE реализует стандарт JavaEE без каких-либо других целей. Если вы связываете свое приложение с TomEE, вы не используете его правильно!

Далее, вы не сказали, какая версия TomEE вы используете, но эти зависимости являются сомнительными:

<dependency> 
     <groupId>com.sun.faces</groupId> 
     <artifactId>jsf-api</artifactId> 
     <version>2.2.12</version> 
     <scope>provided</scope> 
    </dependency> 


    <dependency> 
     <groupId>com.sun.faces</groupId> 
     <artifactId>jsf-impl</artifactId> 
     <version>2.2.12</version> 
     <scope>provided</scope> 
    </dependency> 

    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>jstl</artifactId> 
     <version>1.2</version> 
     <scope>provided</scope> 
    </dependency> 

    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>javax.servlet-api</artifactId> 
     <version>3.1.0</version> 
     <scope>provided</scope> 
    </dependency> 

TomEE 1.7.4 является JavaEE6 совместимы, поэтому JSF 2.2 не будет работать, если не вам замените ящики MyFaces 2.1 в каталоге lib с помощью последних баннеров MyFaces 2.2. Вы правильно используете их в качестве предусмотренных зависимостей, поэтому не изменяйте их. Другой вариант - использовать TomEE 7, который не был выпущен, но обеспечивает совместимость с JavaEE 7.

<dependency> 
     <groupId>javax.annotation</groupId> 
     <artifactId>jsr250-api</artifactId> 
     <version>1.0</version> 
    </dependency> 

^Это должно быть полностью удалено. Ванильный JavaEE jar предоставляет эти интерфейсы.

Итак, как минимум, вам придется исправить эти проблемы, прежде чем продолжить. Как только вы это сделаете, сообщите в другой вопрос о любых дальнейших проблемах, если они у вас есть. Удачи!

+0

Спасибо. С этим я могу продолжать. Что такое «vanilla javaEE», я не понял этого выражения – RonaldoLanhellas

+0

Это относится к вашему стилю разработки кода. Используйте только классы и функции, которые входят в JSR и официальные спецификации JavaEE. Это мешает вам получить доступ к поставщику. –

+0

большое спасибо. – RonaldoLanhellas