Unit Test einer JavaEE Anwendung schlägt fehl. JNDI Name nicht gefunden.

gentleben

Neues Mitglied
Hallo ich versuche mich seit langem mal wieder an Java. Dazu habe ich angefangen ein JavaEE Tutorial von V2B anzusehen. In der Anleitung wird der Wildfly Server in der Version 8 verwendet. Mittlerweile gibt es die Version 10 die ich auch für die Lernzwecke verwende. Ich denke das mein Fehler damit zusammenhängt. Ich finde aber keinen Ansatz um mein Problem zu lösen.

Bitte helft mir den Fehler zu fixen. Ich hoffe die Infos die ich euch gebe sind ausreichend. User und Passwort sind ersetzt. Die habe ich in der Management Console des Servers extra getestet. Danke schonmal!

Ich versuche in einem Unittest die erstellte Bean zu testen und bekomme folgenden Fehler:

Code:
javax.naming.NameNotFoundException: CustomerManagement/CustomerManagementEJB/CustomerBean!com.cm.ejb.interfaces.CustomerDAO -- service jboss.naming.context.java.jboss.exported.CustomerManagement.CustomerManagementEJB."CustomerBean!com.cm.ejb.interfaces.CustomerDAO"
    at org.jboss.as.naming.ServiceBasedNamingStore.lookup(ServiceBasedNamingStore.java:106)
    at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:207)
    at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:184)
    at org.jboss.naming.remote.protocol.v1.Protocol$1.handleServerMessage(Protocol.java:127)
    at org.jboss.naming.remote.protocol.v1.RemoteNamingServerV1$MessageReciever$1.run(RemoteNamingServerV1.java:73)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

Hier ist der Test den ich versuche auszuführen:

Code:
package com.cm.tests;

import static org.junit.Assert.*;

import java.util.Calendar;
import java.util.Hashtable;

import javax.naming.Context;
import javax.naming.InitialContext;

import org.junit.Before;
import org.junit.Test;

import com.cm.ejb.interfaces.CustomerDAO;
import com.cm.persistence.enums.Gender;
import com.cn.persistence.entities.Customer;

public class CustomerBeanTester {

    private CustomerDAO customerDAO;
   
    @Before
    public void setUp() throws Exception {
        try{
            final Hashtable<String, Comparable> jndiProperties = new Hashtable<String, Comparable>();
           
            jndiProperties.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");
           
            jndiProperties.put("jboss.naming.client.ejb.context", true);
           
            jndiProperties.put(Context.PROVIDER_URL, "http-remoting://localhost:8000");
            jndiProperties.put(Context.SECURITY_PRINCIPAL, "*********");
            jndiProperties.put(Context.SECURITY_CREDENTIALS, "*********");
           
            final Context context = new InitialContext(jndiProperties);
           
            final String lookupName = "CustomerManagement/CustomerManagementEJB/CustomerBean!com.cm.ejb.interfaces.CustomerDAO";
           
            customerDAO = (CustomerDAO) context.lookup(lookupName);
           
        }catch(Exception ex){
            throw ex;
        }
       
    }
   
    @Test
    public void test(){
        assertNotNull(customerDAO);
       
        Customer customer = new Customer();
       
        customer.setFirstName("Max");
        customer.setLastName("Mustermann");
        customer.setGender(Gender.Male);
       
        Calendar birthday = Calendar.getInstance();
        birthday.set(Calendar.DAY_OF_MONTH, 1);
        birthday.set(Calendar.MONTH, 1);
        birthday.set(Calendar.YEAR, 1970);
       
        customer.setBirthday(birthday.getTime());
       
        Customer result = customerDAO.create(customer);
       
        assertNotEquals(result.getId(), 0);
    }

}
 
Wie sieht denn CustomerBean, CustomerDAO (auf alles für die Konfiguration wichtige gekürzt reicht) aus?
Wie sieht deine Projektstruktur aus?
 
Nett,... Genau das Gleiche Problem, mit offensichtlich genau dem gleichen V2B habe ich auch. Schade, dass der Ersteller sich nicht mehr gemeldet hat.
 

Zurück
Oben