Maven EJB emballage avec les bibliothèques dépendantes
Im confronté à un problème comment correctement mon paquet de l'entreprise (de l'OREILLE) de l'application avec de simples GUERRE et EJB3 module pour JBoss7 serveur d'application. Le truc, c'est que le module EJB en utilisant XML-RPC de la bibliothèque (à partir de Apache) et je suis encore en train de NoDefClassFound (classes à partir de cette xmlrpc lib) lors du déploiement de l'OREILLE.
Le truc, c'est que maven-ejb-plugin ne pas les dépendances de package dans final jar EJB mais maven-oreille-plugin n'paquet à la racine de l'OREILLE répertoire.
Lorsque l'OREILLE est déployé, l'INSTALLATION est appelée à l'intérieur d'EJB module mais il ne trouve pas xmlrpc lib classe (il n'est pas emballé avec jar EJB mais l'OREILLE et il n'a pas d'entrée dans le manifeste).
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>
Est-il de toute façon à proprement résoudre ce à l'aide de maven?
Peut-être une dépendance avec <champ></>?
champ d'application fournis où? Sur jar EJB? Ne pas ajouter une entrée pour classpath (lors de l'utilisation de maven-ejb-plugin) et même pas de pot de package.
Il semble que j'ai réussi à avoir xmlrpc pot (à l'aide de maven-dépendance-plugin) et l'entrée dans le manifeste à la fois dans jar EJB. Mais Im toujours NoClassDefFoundError. Ai-je raté quelque chose?
Vous pouvez poster l'exception complète?
OriginalL'auteur zdenda.online | 2011-11-16
Vous devez vous connecter pour publier un commentaire.
J'ai réussi à résoudre le problème. Il semble que ces bibliothèques doit être emballé dans le répertoire /lib et non pas dans la racine de l'OREILLE. L'ajout de defaultLibBundleDir élément résolu le problème.
E. g.:
je vais accepter, mais je peux le faire à 19 heures (règles de stackoverflow)
Bon, juste pour s'assurer. 🙂
😉 ok, pas de prob...
Avez-vous quitté le
<addClasspath>true</addClasspath>
sur les EJB config?OriginalL'auteur zdenda.online
Bien, vous pouvez le laisser comme cela, mais vous aurez un tas d'entrées de journal (WARN) sur le serveur commencer à se plaindre du classpath entrées.
Je préfère le mettre à false.
<addClasspath>false</addClasspath>
OriginalL'auteur Carsten