# NullPointerException ( EclipseLink mit OSGi)



## t.stein (23. Jul 2010)

Kann mir einer erklären, warum ich hier einen NullPointer bekomme? Ich rufe die Funktion initUserServerice auf.


```
public void initUserService() {		
		em = getEntityManager();
		em.getTransaction().begin();	
	}
	
	
    private EntityManagerFactory getEntityManagerFactory() {
        if (emf == null) {
            HashMap properties = new HashMap();
            properties.put(PersistenceUnitProperties.CLASSLOADER, this.getClass().getClassLoader());
            emf = new PersistenceProvider().createEntityManagerFactory("UserService", properties);
        }
        return emf;
    }
    
    private EntityManager getEntityManager() {
        if (em == null) {
            em = getEntityManagerFactory().createEntityManager();
        }
        return em;
    }
```


----------



## Marcinek (23. Jul 2010)

Weil ein Objekt auf eine NULL Referenz Zeigt.

Ohne Stacktrace kann man höchsten raten, wo die erste nullpointer kommt.


----------



## t.stein (23. Jul 2010)

In der Zeile hier:


```
emf = new PersistenceProvider().createEntityManagerFactory("UserService", properties)
```


----------



## Marcinek (23. Jul 2010)

Sicher?

Ich sehe da keinen pot. Nullpointer

Hast du kein Stacktrace?


----------



## t.stein (23. Jul 2010)

```
j
ava.lang.NullPointerException
	at de.info.hsag.edicat.persist.service.UserService.getEntityManager(UserService.java:53)
	at de.info.hsag.edicat.persist.service.UserService.initUserService(UserService.java:30)
	at de.info.hsag.edicat.persist.Application.start(Application.java:22)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1287)
```


----------



## Marcinek (23. Jul 2010)

Deine EntityManagerFactory wird nicht korrrekt erzeugt. 

Komisch, dass da keine Exception kommt.


----------



## t.stein (23. Jul 2010)

Eine Idee was ich machen kann?


----------



## maki (23. Jul 2010)

```
new PersistenceProvider().createEntityManagerFactory(
```
Aua :autsch:

Wozu machst du denn ein new, wenn die Methode doch statisch ist...


----------



## t.stein (23. Jul 2010)

@maki Hab den Code vom Beispielcode (comics) von EclipseLink.
Wie soll es denn anders gehen?


----------



## maki (23. Jul 2010)

```
Persistence.createEntityManagerFactory(...
```


----------



## t.stein (28. Jul 2010)

Hallo Zusammen, 

danke für die Tipps. Letztendlich hat es daran gelegen, dass folgende Zeile in der MANIFEST.MF gefehlt hat:

"JPA-PersistenceUnits: UserService"

Vielleicht hilft das dem ein oder anderen weiter!


----------

