Maven-EJB-Verpackung mit abhängigen Bibliotheken

Im vor einem Problem, wie richtig mein Paket enterprise (OHR) - Anwendung mit einer einfachen KRIEG und EJB3-Modul für JBoss7 application server. Die Sache ist, dass EJB-Modul ist über XML-RPC-Bibliothek (Apache) und ich bin noch immer NoDefClassFound (Klassen von dieser xmlrpc-lib) während der Bereitstellung der EAR.

Die Sache ist, dass maven-ejb-plugin funktioniert nicht Paket-Abhängigkeiten innerhalb der letzten EJB-jar, aber maven-Ohr-plugin-Paket hat es an der Wurzel des EAR-Verzeichnis.

Beim OHR wird bereitgestellt, INSTALLIEREN Sie aufgerufen wird, auf innere EJB-Modul, aber es findet nicht die xmlrpc-lib Klasse (es ist nicht verpackt mit EJB-jar-aber OHR und es keinen Eintrag im manifest).

EJB pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<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>cz.ctu.fee.voxport.app_logic</groupId>
    <artifactId>core</artifactId>
    <version>1.0</version>
    <packaging>ejb</packaging>

    <dependencies>
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-api</artifactId>
            <version>6.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.xmlrpc</groupId>
            <artifactId>xmlrpc-common</artifactId>
            <version>3.1.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.xmlrpc</groupId>
            <artifactId>xmlrpc-client</artifactId>
            <version>3.1.3</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-ejb-plugin</artifactId>
                <version>2.3</version>
                <configuration>
                    <ejbVersion>3.1</ejbVersion>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

Gibt es eine Möglichkeit, wie sauber lösen, diese mit maven?

  • Poste bitte die relevanten Teile des POM.
  • Vielleicht eine Abhängigkeit mit <Anwendungsbereich>Voraussetzung</scope>?
  • Umfang vorgesehen, wo? Auf EJB-jar? Nicht Eintrag hinzufügen zum Klassenpfad (bei der Verwendung von maven-ejb-plugins) und auch nicht jar-Paket.
  • Es scheint habe ich es geschafft, xmlrpc-jar (mit maven-dependency-plugin) und Eintrag in der manifest-sowohl in der EJB-jar. Aber ich bin noch immer NoClassDefFoundError. Bin ich etwas fehlt?
  • Kannst du die komplette Ausnahme?
  • Beachten Sie, dass NoClassDefFoundErrors oft zeigen, dass eine der Klassen, die verfügbar ist auf Ihrem classpath verweist auf eine nicht verfügbar ist, und die Klasse aufgeführt, die in der exception message ist nicht unbedingt der fehlende (im Gegensatz zu ClassNotFoundExceptions).
  • Dank shelley. Ich habe das problem gelöst, siehe Antwort unten

Schreibe einen Kommentar