2013-03-15 57 views
1

我需要创建querybuilder。我想在ejb网站上创建它。要做到这一点,我需要使用org.primefaces.model.SortOrder。我在ejb POM中添加对primefaces的依赖。之后,我得到“java.lang.NoClassDefFoundError:org/primefaces/model/SortOrder”。这个依赖在战争中正常工作。有任何想法吗?EJB + JSF(Primefaces)Maven - >在EJB中使用primefaces jar - >在Jboss上部署时出现异常,Eclipse

双龙WAR构建部分

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

</plugins> 
<finalName>JSF</finalName> 
</build> 



EJB Pom 


<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/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>test.com</groupId> 
    <artifactId>EJB</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>ejb</packaging> 

    <name>EJB</name> 

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

    <dependencies> 
My dependencies with primefaces 
</dependencies> 
<build> 
<plugins> 
<plugin> 
<groupId>org.apache.maven.plugins</groupId> 
<artifactId>maven-compiler-plugin</artifactId> 
<version>2.3.2</version> 
<configuration> 
    <source>1.6</source> 
    <target>1.6</target> 
    <compilerArguments> 
     <endorseddirs>${endorsed.dir}</endorseddirs> 
    </compilerArguments> 
</configuration> 
</plugin> 
<plugin> 
<groupId>org.apache.maven.plugins</groupId> 
<artifactId>maven-ejb-plugin</artifactId> 
<version>2.3</version> 
<configuration> 
    <ejbVersion>3.1</ejbVersion> 

    <archive> 
     <manifestEntries> 
      <Dependencies>org.slf4j</Dependencies> 
     </manifestEntries> 
    </archive> 

</configuration> 
</plugin> 
<plugin> 
<groupId>org.apache.maven.plugins</groupId> 
<artifactId>maven-dependency-plugin</artifactId> 
<version>2.1</version> 
<executions> 
    <execution> 
     <phase>validate</phase> 
     <goals> 
      <goal>copy</goal> 
     </goals> 
     <configuration> 
      <outputDirectory>${endorsed.dir}</outputDirectory> 
      <silent>true</silent> 
      <artifactItems> 
       <artifactItem> 
        <groupId>javax</groupId> 
        <artifactId>javaee-endorsed-api</artifactId> 
        <version>6.0</version> 
        <type>jar</type> 
       </artifactItem> 
      </artifactItems> 
     </configuration> 
    </execution> 
</executions> 
</plugin> 
</plugins> 
<pluginManagement> 
<plugins> 
<!--This plugin's configuration is used to store Eclipse m2e settings 
    only. It has no influence on the Maven build itself. --> 
<plugin> 
    <groupId>org.eclipse.m2e</groupId> 
    <artifactId>lifecycle-mapping</artifactId> 
    <version>1.0.0</version> 
    <configuration> 
     <lifecycleMappingMetadata> 
      <pluginExecutions> 
       <pluginExecution> 
        <pluginExecutionFilter> 
         <groupId> 
          org.apache.maven.plugins 
         </groupId> 
         <artifactId> 
          maven-dependency-plugin 
         </artifactId> 
         <versionRange> 
          [2.1,) 
         </versionRange> 
         <goals> 
          <goal>copy</goal> 
         </goals> 
        </pluginExecutionFilter> 
        <action> 
         <ignore></ignore> 
        </action> 
       </pluginExecution> 
      </pluginExecutions> 
     </lifecycleMappingMetadata> 
    </configuration> 
</plugin> 
</plugins> 
</pluginManagement> 
</build> 

</project> 


EAR is not a maven projekt 


    <display-name>EAR</display-name> 
    <module> 
    <web> 
     <web-uri>JSF.war</web-uri> 
     <context-root>JSF</context-root> 
    </web> 
    </module> 
    <module> 
    <ejb>EJB.jar</ejb> 
    </module> 
</application> 

回答

2

,如果你需要它同时使用EJB和战争,则必须创建一个耳包,它应该包含您的库的应用程序。如果你不想创建第三个pom(从你的两个孩子创造耳朵),那么你可以将这个库移动到服务器。