EJB und Arquillian - bekomme Nullpointer Exception beim Aufruf der EJB Klasse

Bitte aktiviere JavaScript!
A

Anzeige


Vielleicht hilft dir dieser Kurs hier weiter: (hier klicken)
WTF?!? Bindest Du hier jede Java EE-Lib einzeln ein?

Code:
[LIST=1]
[*]        <dependency>
[*]            <groupId>org.jboss.arquillian</groupId>
[*]            <artifactId>arquillian-bom</artifactId>
[*]            <version>1.4.0.Final</version>
[*]            <scope>import</scope>
[*]            <type>pom</type>
[*]        </dependency>
[/LIST]
Die gehört unter Dependency Management.

Wofür sind denn die ganzen arquillian-Libs bzgl. weld usw? Wenn ich es richtig sehe, ist das Zeug 10 Jahre alt...
 
Du bindest die EE-Libs alle über javaee-api ein, zusätzlich alle einzeln, und hast das zusätzlich noch in Version 7 in Dependeny-Management.
Andere Libs hast du zT doppelt in verschiedenen Versionen oder völlig unnötig drin.
Puh, ok.... Das macht natürlich kein Sinn - danke für den Hinweis
- Welche könnte ich denn dann rauswerfen (hibernate gehört zB dann zu JAVA EE?)
-> Könntest du eine vereinfachte POM aus meiner erstellen und eben die rauswerfen, die vermutlich nicht benötigt werden?

Das heißt du meinst, dass ich dies ersetzen sollte

Java:
<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.jboss.spec</groupId>
                <artifactId>jboss-javaee-7.0</artifactId>
                <version>1.0.0.Final</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
 
        </dependencies>
    </dependencyManagement>
mit:
Java:
<dependencyManagement>
        <dependencies>
           
<dependency>
    <groupId>org.jboss.spec</groupId>
    <artifactId>jboss-javaee-all-8.0</artifactId>
    <version>1.0.3.Final</version>
</dependency>
 
        </dependencies>
    </dependencyManagement>

brauche ich diese Profiles überhaupt?

@mihe7:
danke, probiere ich später aus....
 
- Welche könnte ich denn dann rauswerfen (hibernate gehört zB dann zu JAVA EE?)
Alle Einzelnen Java-EE-Apis und deren Implementation. Und zusätzlich alles, was du nicht brauchst, auf der ersten Blick sind zB drei verschiedene CSV-Parser mit drin.

-> Könntest du eine vereinfachte POM aus meiner erstellen und eben die rauswerfen, die vermutlich nicht benötigt werden?

Was von dem, was drin ist, aber noch benutzt wird, weiß ich nicht...

Das heißt du meinst, dass ich dies ersetzen sollte
[...]
mit:
[...]
Ne, das kann ersatzlos raus.

brauche ich diese Profiles überhaupt?
Das für Tests vielleicht.
 
Also ich habe die pom gerade mal probiert....
Leider fehlen mir nun (hauptsächlich JPA / Hibernate) nun Klassen:

import org.hibernate.validator.constraints.Email;
import org.hibernate.annotations.LazyCollection;
import org.hibernate.annotations.LazyCollectionOption;


ich habe das hier verwendet:

Code:
@OneToMany(mappedBy = "jobTransferMapping", cascade = { PERSIST, MERGE, REMOVE })
@LazyCollection(LazyCollectionOption.FALSE)
private List<JobTransferMappingLanguage> jobTransferMappingLanguage;
kann ich das ersetzen mit:
@OneToMany(fetch = FetchType.EAGER)


2) woher weiß ich nun welche Versionen ich überhaupt verwende von JPA, JSF, Hibernate...?
 
Leider fehlen mir nun (hauptsächlich JPA / Hibernate) nun Klassen:
Wenn du gegen die Implementierung statt den Standard entwickeln willst, musst du die natürlich wieder einbinden. Ist aber nur selten nötig.

kann ich das ersetzen mit:
@OneToMany(fetch = FetchType.EAGER)
Sollte passen.

2) woher weiß ich nun welche Versionen ich überhaupt verwende von JPA, JSF, Hibernate...?
Alles was zum Standard gehört in der Version, zu zu Java EE 8 gehört, zB hier auffindbar: https://www.oracle.com/technetwork/java/javaee/tech/index.html

Bei Implementierungen das, was der Application Server mitliefert (oder was du extra einbindest), solange die Version zu Standard passt, ist da aber meist egal. Dürfte sich aber für den entsprechenden Server in dessen Doku finden lassen.
 
Hier mal ein Testprojekt. Pfad in src/test/resources/arquillian.xml anpassen.
habe ich jetzt gerade mal probiert...
Er findet aber die Klassen nicht? Kann es sein, dass hier noch eine .jar fehlt?

import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.shrinkwrap.api.Archive;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.asset.EmptyAsset;
import org.jboss.shrinkwrap.api.spec.WebArchive;
 
Wenn Du das aus der IDE heraus machst, kann es sein, dass Du erstmal das Projekt neu bauen lassen musst, damit Maven die ggf. noch fehlenden Jars herunterlädt. Danach sollten die Fehler weg sein.
 
hm, bist du dir sicher, dass das funktioniert?
Ich habe nun verschiedene Dinge in Eclipse durchgeführt:
- Update Project
- Clean Maven
- Maven install


Er kann aber diese immer noch nicht finden:
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.shrinkwrap.api.Archive;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.asset.EmptyAsset;
import org.jboss.shrinkwrap.api.spec.WebArchive;
 
hm, bist du dir sicher, dass das funktioniert?
Ja, das ist ein reines Maven-Projekt, das kannst Du auch von der Befehlszeile aus builden/testen (ein mvn clean package sollte reichen, sofern Du Maven entsprechend installiert hast). Was Eclipse an den Pfaden des Maven-Projekts rumpfuscht, weiß ich nicht. Eigentlich würde ich davon ausgehen, dass beim Öffnen eines Projekts auch dessen "Einstellungen" übernommen werden - zumal das Projekt den Maven-Konventionen folgt.
 
Ich verstehe es nicht.... Es scheint mir aber, dass eben ein paar .jars fehlen:

So sieht es bei mir aus:
Greenshot2019-06-1018.31.04.png

Folgende jars werden importiert:

/Users/.m2/repository/javax/javaee-api/8.0/javaee-api-8.0.jar
/Users/.m2/repository/com/sun/mail/javax.mail/1.6.0/javax.mail-1.6.0.jar
/Users/.m2/repository/javax/activation/activation/1.1/activation-1.1.jar
/Users/.m2/repository/org/jboss/arquillian/junit/arquillian-junit-container/1.4.0.Final/arquillian-junit-container-1.4.0.Final.jar
/Users/.m2/repository/org/wildfly/arquillian/wildfly-arquillian-container-managed/2.1.1.Final/wildfly-arquillian-container-managed-2.1.1.Final.jar
/Users/.m2/repository/org/wildfly/arquillian/wildfly-arquillian-common/2.1.1.Final/wildfly-arquillian-common-2.1.1.Final.jar
/Users/.m2/repository/org/jboss/arquillian/testenricher/arquillian-testenricher-cdi/1.4.0.Final/arquillian-testenricher-cdi-1.4.0.Final.jar
/Users/.m2/repository/org/jboss/arquillian/testenricher/arquillian-testenricher-ejb/1.4.0.Final/arquillian-testenricher-ejb-1.4.0.Final.jar
/Users/.m2/repository/org/jboss/arquillian/testenricher/arquillian-testenricher-initialcontext/1.4.0.Final/arquillian-testenricher-initialcontext-1.4.0.Final.jar
/Users/.m2/repository/org/jboss/arquillian/testenricher/arquillian-testenricher-resource/1.4.0.Final/arquillian-testenricher-resource-1.4.0.Final.jar
/Users/.m2/repository/org/jboss/arquillian/container/arquillian-container-test-impl-base/1.4.0.Final/arquillian-container-test-impl-base-1.4.0.Final.jar
/Users/.m2/repository/org/jboss/arquillian/protocol/arquillian-protocol-servlet/1.4.0.Final/arquillian-protocol-servlet-1.4.0.Final.jar
/Users/.m2/repository/org/wildfly/arquillian/wildfly-arquillian-testenricher-msc/2.1.1.Final/wildfly-arquillian-testenricher-msc-2.1.1.Final.jar
/Users/.m2/repository/org/jboss/arquillian/test/arquillian-test-spi/1.4.0.Final/arquillian-test-spi-1.4.0.Final.jar
/Users/.m2/repository/org/jboss/arquillian/container/arquillian-container-test-spi/1.4.0.Final/arquillian-container-test-spi-1.4.0.Final.jar
/Users/.m2/repository/org/wildfly/core/wildfly-server/3.0.0.Final/wildfly-server-3.0.0.Final.jar
/Users/.m2/repository/org/wildfly/core/wildfly-controller/3.0.0.Final/wildfly-controller-3.0.0.Final.jar
/Users/.m2/repository/org/jboss/staxmapper/1.3.0.Final/staxmapper-1.3.0.Final.jar
/Users/.m2/repository/org/projectodd/vdx/vdx-wildfly/1.1.6/vdx-wildfly-1.1.6.jar
/Users/.m2/repository/org/projectodd/vdx/vdx-core/1.1.6/vdx-core-1.1.6.jar
/Users/.m2/repository/org/wildfly/core/wildfly-core-management-client/3.0.0.Final/wildfly-core-management-client-3.0.0.Final.jar
/Users/.m2/repository/org/wildfly/core/wildfly-domain-http-interface/3.0.0.Final/wildfly-domain-http-interface-3.0.0.Final.jar
/Users/.m2/repository/org/wildfly/security/elytron-web/undertow-server/1.0.0.Final/undertow-server-1.0.0.Final.jar
/Users/.m2/repository/org/wildfly/core/wildfly-deployment-repository/3.0.0.Final/wildfly-deployment-repository-3.0.0.Final.jar
/Users/.m2/repository/org/wildfly/core/wildfly-platform-mbean/3.0.0.Final/wildfly-platform-mbean-3.0.0.Final.jar
/Users/.m2/repository/org/wildfly/core/wildfly-process-controller/3.0.0.Final/wildfly-process-controller-3.0.0.Final.jar
/Users/.m2/repository/org/wildfly/core/wildfly-network/3.0.0.Final/wildfly-network-3.0.0.Final.jar
/Users/.m2/repository/org/wildfly/core/wildfly-version/3.0.0.Final/wildfly-version-3.0.0.Final.jar
/Users/.m2/repository/org/jboss/jandex/2.0.3.Final/jandex-2.0.3.Final.jar
/Users/.m2/repository/org/jboss/invocation/jboss-invocation/1.5.0.Final/jboss-invocation-1.5.0.Final.jar
/Users/.m2/repository/org/jboss/logmanager/jboss-logmanager/2.0.7.Final/jboss-logmanager-2.0.7.Final.jar
/Users/.m2/repository/org/jboss/modules/jboss-modules/1.6.0.Final/jboss-modules-1.6.0.Final.jar
/Users/.m2/repository/org/jboss/stdio/jboss-stdio/1.0.2.GA/jboss-stdio-1.0.2.GA.jar
/Users/.m2/repository/org/jboss/jboss-vfs/3.2.12.Final/jboss-vfs-3.2.12.Final.jar
/Users/.m2/repository/io/undertow/undertow-core/1.4.18.Final/undertow-core-1.4.18.Final.jar
/Users/.m2/repository/org/wildfly/core/wildfly-controller-client/3.0.0.Final/wildfly-controller-client-3.0.0.Final.jar
/Users/.m2/repository/org/wildfly/core/wildfly-protocol/3.0.0.Final/wildfly-protocol-3.0.0.Final.jar
/Users/.m2/repository/org/jboss/jboss-dmr/1.4.1.Final/jboss-dmr-1.4.1.Final.jar
/Users/.m2/repository/org/jboss/threads/jboss-threads/2.2.1.Final/jboss-threads-2.2.1.Final.jar
/Users/.m2/repository/org/wildfly/plugins/wildfly-plugin-core/1.2.0.Final/wildfly-plugin-core-1.2.0.Final.jar
/Users/.m2/repository/org/jboss/shrinkwrap/descriptors/shrinkwrap-descriptors-impl-base/2.0.0/shrinkwrap-descriptors-impl-base-2.0.0.jar
/Users/.m2/repository/org/jboss/shrinkwrap/descriptors/shrinkwrap-descriptors-spi/2.0.0/shrinkwrap-descriptors-spi-2.0.0.jar
/Users/.m2/repository/org/jboss/shrinkwrap/descriptors/shrinkwrap-descriptors-api-base/2.0.0/shrinkwrap-descriptors-api-base-2.0.0.jar
/Users/.m2/repository/org/wildfly/common/wildfly-common/1.2.0.Final/wildfly-common-1.2.0.Final.jar
/Users/.m2/repository/org/wildfly/arquillian/wildfly-arquillian-protocol-jmx/2.1.1.Final/wildfly-arquillian-protocol-jmx-2.1.1.Final.jar
/Users/.m2/repository/org/wildfly/security/wildfly-elytron/1.1.0.Final/wildfly-elytron-1.1.0.Final.jar
/Users/.m2/repository/org/jboss/arquillian/core/arquillian-core-spi/1.4.0.Final/arquillian-core-spi-1.4.0.Final.jar
/Users/.m2/repository/org/jboss/arquillian/protocol/arquillian-protocol-jmx/1.4.0.Final/arquillian-protocol-jmx-1.4.0.Final.jar
/Users/.m2/repository/org/wildfly/core/wildfly-jmx/3.0.0.Final/wildfly-jmx-3.0.0.Final.jar
/Users/.m2/repository/org/jboss/msc/jboss-msc/1.2.7.SP1/jboss-msc-1.2.7.SP1.jar
/Users/.m2/repository/org/wildfly/core/wildfly-remoting/3.0.0.Final/wildfly-remoting-3.0.0.Final.jar
/Users/.m2/repository/org/wildfly/core/wildfly-domain-management/3.0.0.Final/wildfly-domain-management-3.0.0.Final.jar
/Users/.m2/repository/org/picketbox/picketbox/5.0.2.Final/picketbox-5.0.2.Final.jar
/Users/.m2/repository/org/wildfly/openssl/wildfly-openssl-java/1.0.2.Final/wildfly-openssl-java-1.0.2.Final.jar
/Users/.m2/repository/org/wildfly/core/wildfly-core-security/3.0.0.Final/wildfly-core-security-3.0.0.Final.jar
/Users/.m2/repository/org/wildfly/core/wildfly-core-security-api/3.0.0.Final/wildfly-core-security-api-3.0.0.Final.jar
/Users/.m2/repository/org/wildfly/core/wildfly-io/3.0.0.Final/wildfly-io-3.0.0.Final.jar
/Users/.m2/repository/org/jboss/xnio/xnio-api/3.5.1.Final/xnio-api-3.5.1.Final.jar
/Users/.m2/repository/org/wildfly/client/wildfly-client-config/1.0.0.Final/wildfly-client-config-1.0.0.Final.jar
/Users/.m2/repository/org/jboss/xnio/xnio-nio/3.5.1.Final/xnio-nio-3.5.1.Final.jar
/Users/.m2/repository/org/jboss/logging/jboss-logging/3.3.1.Final/jboss-logging-3.3.1.Final.jar
/Users/.m2/repository/org/jboss/marshalling/jboss-marshalling/2.0.0.Final/jboss-marshalling-2.0.0.Final.jar
/Users/.m2/repository/org/jboss/marshalling/jboss-marshalling-river/2.0.0.Final/jboss-marshalling-river-2.0.0.Final.jar
/Users/.m2/repository/org/jboss/remoting/jboss-remoting/5.0.0.Final/jboss-remoting-5.0.0.Final.jar
/Users/.m2/repository/org/jboss/remotingjmx/remoting-jmx/3.0.0.Final/remoting-jmx-3.0.0.Final.jar
/Users/.m2/repository/javax/inject/javax.inject/1/javax.inject-1.jar
/Users/.m2/repository/org/wildfly/core/wildfly-launcher/3.0.0.Final/wildfly-launcher-3.0.0.Final.jar
/Users/.m2/repository/org/jboss/arquillian/core/arquillian-core-api/1.4.0.Final/arquillian-core-api-1.4.0.Final.jar
/Users/.m2/repository/junit/junit/4.12/junit-4.12.jar
/Users/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar
 
So, ich habe jetzt auf meinem Rechner noch ein altes Eclipse Neon.2 gefunden.

Projekt in einen Ordner arqtest entzippt. In Eclipse File -> Open Projects from File System... aufgerufen, das Verzeichnis arqtest ausgewählt. Projekt wurde importiert -> alles OK. Danach Run As -> Maven test. Test läuft.
 
Hm, ich habe das nun mal auf einem Windows - Rechner probiert und hier hat es geklappt (keine Compiler Fehler bekommen; der Test selbst habe ich nicht probiert)
Auf dem bisherigen Rechner verwende ich MacOS Eclipse.
Kann es wirklich daran liegen??
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben