2013-04-05 127 views
2

我想在Jboss Server 7.1.1中部署一個jar應用程序它是通過maven配置的,我在pom.xml中添加了所有的依賴關係。Apache POI java.lang.NoClassDefFoundError:Jboss 7.1.1

<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>SampleGroupId</groupId> 
<artifactId>SampleArtifactId</artifactId> 
<version>0.0.1-SNAPSHOT</version> 
<name>ProjectName</name> 
<dependencies> 
    <dependency> 
     <groupId>commons-fileupload</groupId> 
     <artifactId>commons-fileupload</artifactId> 
     <version>1.2.1</version> 
    </dependency> 
    <dependency> 
     <groupId>commons-io</groupId> 
     <artifactId>commons-io</artifactId> 
     <version>1.3.2</version> 
    </dependency> 
    <dependency> 
     <groupId>commons-logging</groupId> 
     <artifactId>commons-logging</artifactId> 
     <version>1.0.4</version> 
    </dependency> 
    <dependency> 
     <groupId>org.freemarker</groupId> 
     <artifactId>freemarker</artifactId> 
     <version>2.3.13</version> 
    </dependency> 
    <dependency> 
     <groupId>opensymphony</groupId> 
     <artifactId>ognl</artifactId> 
     <version>2.6.11</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.struts</groupId> 
     <artifactId>struts2-core</artifactId> 
     <version>2.1.6</version> 
    </dependency> 
    <dependency> 
     <groupId>com.opensymphony</groupId> 
     <artifactId>xwork</artifactId> 
     <version>2.1.2</version> 
    </dependency> 
    <dependency> 
     <groupId>commons-fileupload</groupId> 
     <artifactId>commons-fileupload</artifactId> 
     <version>1.2.1</version> 
    </dependency> 
    <dependency> 
     <groupId>commons-io</groupId> 
     <artifactId>commons-io</artifactId> 
     <version>1.3.2</version> 
    </dependency> 
    <dependency> 
     <groupId>commons-logging</groupId> 
     <artifactId>commons-logging</artifactId> 
     <version>1.0.4</version> 
    </dependency> 
    <dependency> 
     <groupId>org.freemarker</groupId> 
     <artifactId>freemarker</artifactId> 
     <version>2.3.13</version> 
    </dependency> 
    <dependency> 
     <groupId>opensymphony</groupId> 
     <artifactId>ognl</artifactId> 
     <version>2.6.11</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.struts</groupId> 
     <artifactId>struts2-core</artifactId> 
     <version>2.1.6</version> 
    </dependency> 
    <dependency> 
     <groupId>com.opensymphony</groupId> 
     <artifactId>xwork</artifactId> 
     <version>2.1.2</version> 
    </dependency> 
    <dependency> 
     <groupId>ECView_1_10_jar_test</groupId> 
     <artifactId>ECView_1_10_jar_test</artifactId> 
     <version>0.0.1-SNAPSHOT</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.activation</groupId> 
     <artifactId>activation</artifactId> 
     <version>1.1.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss.spec.javax.annotation</groupId> 
     <artifactId>jboss-annotations-api_1.1_spec</artifactId> 
     <version>1.0.0.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss.spec.javax.ejb</groupId> 
     <artifactId>jboss-ejb-api_3.1_spec</artifactId> 
     <version>1.0.1.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss.spec.javax.el</groupId> 
     <artifactId>jboss-el-api_2.2_spec</artifactId> 
     <version>1.0.0.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.enterprise</groupId> 
     <artifactId>cdi-api</artifactId> 
     <version>1.0-SP4</version> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss.spec.javax.enterprise.deploy</groupId> 
     <artifactId>jboss-jad-api_1.2_spec</artifactId> 
     <version>1.0.0.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss.spec.javax.faces</groupId> 
     <artifactId>jboss-jsf-api_2.1_spec</artifactId> 
     <version>2.0.0.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.inject</groupId> 
     <artifactId>javax.inject</artifactId> 
     <version>1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss.spec.javax.interceptor</groupId> 
     <artifactId>jboss-interceptors-api_1.1_spec</artifactId> 
     <version>1.0.0.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss.spec.javax.jms</groupId> 
     <artifactId>jboss-jms-api_1.1_spec</artifactId> 
     <version>1.0.0.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.jws</groupId> 
     <artifactId>jsr181-api</artifactId> 
     <version>1.0-MR1</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.mail</groupId> 
     <artifactId>mail</artifactId> 
     <version>1.4.4</version> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss.spec.javax.management.j2ee</groupId> 
     <artifactId>jboss-j2eemgmt-api_1.1_spec</artifactId> 
     <version>1.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> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss.spec.javax.resource</groupId> 
     <artifactId>jboss-connector-api_1.6_spec</artifactId> 
     <version>1.0.0.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss.spec.javax.rmi</groupId> 
     <artifactId>jboss-rmi-api_1.0_spec</artifactId> 
     <version>1.0.4.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss.spec.javax.security.auth.message</groupId> 
     <artifactId>jboss-jaspi-api_1.0_spec</artifactId> 
     <version>1.0.0.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss.spec.javax.security.jacc</groupId> 
     <artifactId>jboss-jacc-api_1.4_spec</artifactId> 
     <version>1.0.1.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss.spec.javax.servlet</groupId> 
     <artifactId>jboss-servlet-api_3.0_spec</artifactId> 
     <version>1.0.0.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss.spec.javax.servlet.jsp</groupId> 
     <artifactId>jboss-jsp-api_2.2_spec</artifactId> 
     <version>1.0.0.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss.spec.javax.servlet.jstl</groupId> 
     <artifactId>jboss-jstl-api_1.2_spec</artifactId> 
     <version>1.0.2.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss.spec.javax.transaction</groupId> 
     <artifactId>jboss-transaction-api_1.1_spec</artifactId> 
     <version>1.0.0.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.validation</groupId> 
     <artifactId>validation-api</artifactId> 
     <version>1.0.0.GA</version> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss.spec.javax.ws.rs</groupId> 
     <artifactId>jboss-jaxrs-api_1.1_spec</artifactId> 
     <version>1.0.0.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>wsdl4j</groupId> 
     <artifactId>wsdl4j</artifactId> 
     <version>1.6.2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss.spec.javax.xml.bind</groupId> 
     <artifactId>jboss-jaxb-api_2.2_spec</artifactId> 
     <version>1.0.3.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss.spec.javax.xml.registry</groupId> 
     <artifactId>jboss-jaxr-api_1.0_spec</artifactId> 
     <version>1.0.0.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss.spec.javax.xml.rpc</groupId> 
     <artifactId>jboss-jaxrpc-api_1.1_spec</artifactId> 
     <version>1.0.0.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss.spec.javax.xml.soap</groupId> 
     <artifactId>jboss-saaj-api_1.3_spec</artifactId> 
     <version>1.0.1.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss.spec.javax.xml.ws</groupId> 
     <artifactId>jboss-jaxws-api_2.2_spec</artifactId> 
     <version>2.0.0.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-validator</artifactId> 
     <version>4.2.0.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.picketbox</groupId> 
     <artifactId>picketbox-commons</artifactId> 
     <version>1.0.0.final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.picketbox</groupId> 
     <artifactId>picketbox-infinispan</artifactId> 
     <version>4.0.6.final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss.as</groupId> 
     <artifactId>jboss-as-controller-client</artifactId> 
     <version>7.1.0.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss</groupId> 
     <artifactId>jboss-dmr</artifactId> 
     <version>1.1.1.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss.logging</groupId> 
     <artifactId>jboss-logging</artifactId> 
     <version>3.1.0.GA</version> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss.resteasy</groupId> 
     <artifactId>resteasy-jaxb-provider</artifactId> 
     <version>2.3.1.GA</version> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss.resteasy</groupId> 
     <artifactId>async-http-servlet-3.0</artifactId> 
     <version>2.3.1.GA</version> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss.resteasy</groupId> 
     <artifactId>resteasy-jaxrs</artifactId> 
     <version>2.3.1.GA</version> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss.resteasy</groupId> 
     <artifactId>resteasy-multipart-provider</artifactId> 
     <version>2.3.1.GA</version> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss.ejb3</groupId> 
     <artifactId>jboss-ejb3-ext-api</artifactId> 
     <version>2.0.0</version> 
    </dependency> 
    <dependency> 
     <groupId>c3p0</groupId> 
     <artifactId>c3p0</artifactId> 
     <version>0.9.1</version> 
    </dependency> 
    <dependency> 
     <groupId>ecs</groupId> 
     <artifactId>ecs</artifactId> 
     <version>1.4.2</version> 
    </dependency> 
    <dependency> 
     <groupId>net.sf.ehcache</groupId> 
     <artifactId>ehcache</artifactId> 
     <version>1.2.3</version> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-c3p0</artifactId> 
     <version>3.3.2.GA</version> 
    </dependency> 
    <dependency> 
     <groupId>org.cheffo</groupId> 
     <artifactId>jeplite</artifactId> 
     <version>0.8.7a</version> 
    </dependency> 
    <dependency> 
     <groupId>org.cheffo</groupId> 
     <artifactId>jeplite</artifactId> 
     <version>0.8.7a</version> 
     <classifier>sources</classifier> 
    </dependency> 
    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <version>5.1.10</version> 
    </dependency> 
    <dependency> 
     <groupId>com.sun</groupId> 
     <artifactId>tools</artifactId> 
     <version>1.5.0</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.poi</groupId> 
     <artifactId>poi</artifactId> 
     <version>3.9</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.poi</groupId> 
     <artifactId>poi-ooxml</artifactId> 
     <version>3.9</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.poi</groupId> 
     <artifactId>poi-ooxml-schemas</artifactId> 
     <version>3.9</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.poi</groupId> 
     <artifactId>poi-scratchpad</artifactId> 
     <version>3.9</version> 
     </dependency> 
</dependencies> 
<build> 
    <sourceDirectory>src</sourceDirectory> 
    <resources> 
     <resource> 
      <directory>src</directory> 
      <excludes> 
       <exclude>**/*.java</exclude> 
      </excludes> 
     </resource> 
    </resources> 
    <plugins> 
     <plugin> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.0</version> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

爲Apache POI 3.9我所有的依賴條件的定義和所有瓶子都正確地包含在類路徑中。然而,當我嘗試部署JAR文件的部署失敗,因爲

「java.lang.NoClassDefFoundError:組織/阿帕奇/ POI/SS /的usermodel /字體」

在谷歌閱讀完畢後,我已經改變了我的JBoss部署結構這樣

<?xml version="1.0" encoding="UTF-8"?> 
<jboss-deployment-structure> 
    <deployment> 
     <dependencies> 
      <module name="org.hibernate" export="true" /> 
      <system export="true"> 
       <paths> 
        <path name="org/apache/poi/ss/usermodel/Row"/> 
        <path name="org/apache/poi/ss/usermodel/Font"/> 
       </paths> 
      </system> 
     </dependencies> 
    </deployment> 
</jboss-deployment-structure> 

但我仍面臨不與我能沒有任何問題,部署WAR文件發生並使用相同的類相同的問題。任何有識之士就如何解決這個問題將有很大的幫助

+0

你能嘗試所有的Apache POI的出口到你的web應用?行和字體將依賴POI的其他部分 – Gagravarr 2013-04-05 12:18:22

+0

POI庫位於何處?你爲它創建了一個模塊嗎? – 2013-04-05 16:27:56

+0

apache poi庫所需的jar包含在我的EJB項目的類路徑中,我也將它們放在獨立的lib文件夾下...... – Sriram85 2013-04-08 06:56:16

回答

0

MANIFEST.MF添加

Manifest-Version: 1.0 
    Class-Path: 
    Dependencies: org.apache.poi 

此外,還要確保你正確有JBoss安裝裏面的模塊,你應該在org/apache一個文件夾,名爲poi ,那麼main內主,你將有罐子和module.xml,你需要的是罐子:

  • POI

  • POI-OOXML

  • POI-OOXML-模式

  • POI暫存器

  • 的dom4j

  • STAX的API

  • 的xmlbeans

module.xml會像

<module xmlns="urn:jboss:module:1.1" name="org.apache.poi"> 
     <properties> 
      <property name="jboss.api" value="private"/> 
     </properties> 
     <resources> 
      <resource-root path="poi-3.9-20121203.jar"/> 
      <resource-root path="poi-ooxml-3.9-20121203.jar"/> 
      <resource-root path="poi-ooxml-schemas-3.9-20121203.jar"/> 
      <resource-root path="poi-scratchpad-3.9-20121203.jar"/> 
      <resource-root path="dom4j-1.6.1.jar"/> 
      <resource-root path="stax-api-1.0.1.jar"/> 
      <resource-root path="xmlbeans-2.3.0.jar"/> 
     </resources> 

     <dependencies> 
      <module name="javax.api"/> 
     </dependencies> 
    </module> 

poi-ooxml是閱讀2007年Excel和它上面需要poipoi-ooxml-schemadom4jstax-apixmlbean一起的XMLBeans需要依賴 「javax.api」。

最後一件事確保你的版本是兼容的