2

我正在尝试在 Jboss Server 7.1.1 中部署一个 jar 应用程序,它是通过 maven 配置的,我已经在 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/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 都正确包含在类路径中。但是,当我尝试部署 jar 文件时,部署失败是由于

“ java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/Font”

在谷歌上阅读后,我改变了我的 jboss-deployment-structure 像这样

<?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 文件不会发生这种问题。有关如何解决此问题的任何见解都会有很大帮助

4

1 回答 1

0

MANIFEST.MF添加

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

另外,请确保您在 JBoss 中正确设置了您的模块,您应该在org/apachecalled中有一个文件夹poi,然后main在 main 中您将拥有 jars 和 module.xml,您需要的 jars 是:

  • 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 及更高版本,它需要poi和,poi-ooxml-schema以及,xmlbeans 需要依赖项“javax.api”。dom4jstax-apixmlbean

最后一件事确保您的版本兼容

于 2017-05-05T20:18:07.890 回答