2016-05-15 22 views
1

今、tomeeから始めています。私のpom.xmlはtomcatで使うように設定されています。ですから、私は、JPA、CDI、EJB、HIBERNATEの技術を使ってtomeeで作業するために削除したり追加しなければならないものが何であるか分かりません。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> 

しかし、私はいくつかのエラーを得、以下を参照してください。

を開始サーバiがエラー得たとき:何ですか

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

正確にlibs私はpom.xmlにtomeeとどの範囲を使用するために追加する必要がありますか?

答えて

4

あなたはバニラの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> 

JSF 2.2を使う場合を除き、機能しませんので、TomEE 1.7.4は、JavaEE6互換性がありますlibディレクトリのMyFaces 2.1 jarファイルを最新のMyFaces 2.2 jarファイルに置き換えます。あなたは提供された依存関係としてそれらを使用するのは正しいので、変更しないでください。もう1つのオプションは、リリースされていない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

関連する問題