WELD-001408 Unsatisfied dependencies for type

JBAS018717: No deployment content with hash
20. November 2012
java.lang.IllegalStateException: Operation not allowed.
19. April 2013

WELD-001408 Unsatisfied dependencies for type

Hinter diesem Fehler suchten wir sehr lange hinter her.

Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [User] with qualifiers [@Default] at injection point [[field] @Inject private de.company.User]

Das Projekt baute sich aus zwei Git-Projekten auf, in dem einen waren die Entitäten eingelagert, in dem anderen Projekt die Geschäftslogik. Das Projekt mit der Geschäftslogik bindet die Entitäten, als JAR-Datei, ein. In beiden Projekten lag eine beans.xml. Leider ist es dem Glassfisch 3.1.2.2 nicht möglich die Sourcen zu durchsuchen, was zu dem Fehler führt, dass er die Entitäten nicht auflösen kann.

Die Lösung ist recht einfach, wenn man Maven einsetzt. Dort muss nur ein Plugin eingefügt werden, dass die JAR-Dateien zusammen fügt.

Aussehen tut das in etwa so:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.3</version>
    <configuration>
        <overlays>
            <overlay>
                <groupId>de.company</groupId>
                <artifactId>entities</artifactId>
                <type>jar</type>
                <targetPath>WEB-INF/classes</targetPath>
            </overlay>
        </overlays>
        <failOnMissingWebXml>false</failOnMissingWebXml>
    </configuration>
</plugin>

Die groupId, artifactId und type unter overlay müssen ausgetauscht werden und dem jeweiligen Maven-Projekt angepasst werden. Jedes Projekt, dass via overlay mit in die Haupt JAR/WAR/EAR eingefügt wird, muss via Dependency in das Hauptprojekt eingebunden werden.

Und schon klappt es mit den Nachbarn.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *