| 

.NET C# Java Javascript Exception

NPE bei der Verwendung von Services

Dies ist das Archiv des ehemaligen Forums zum Thema Groovy, Grails, Griffon und Bean Scripting Framework, welches unter groovy-forum.de existierte. Die neue Adresse des Groovy-Forums ist: http://codekicker.de/fragen/themen/groovy.


NPE bei der Verwendung von Services

manuel - 18.02.2008 22:22
Hallo,

ich möchte in meiner Grails-Applikation Services in Java-Klassen verwenden. Beim Starten der Applikation erhalte ich jedoch immer eine NullpointerException. Und zwar beschwert sich der Compiler, dass er mein Java Bean nicht instanziieren kann.

Das Beispiel sieht folgendermaßen aus:

der Service (das Interface definiert die Methode getPicBackground()):
class PagePartsService implements style.IPagePartsService {
	
    boolean transactional = true

    byte[] getPicBackground() {
    	new byte[1]
    }
}

die Java-Klasse:
package nicole;

import style.IPagePartsService;

class Frame {
	
	private IPagePartsService pagePartsService;

	public void setPagePartsService(IPagePartsService pagePartsService) {
		this.pagePartsService = pagePartsService;
	}
	
	byte[] background = pagePartsService.getPicBackground();
        ...
}

die recources.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="[www.springframework.org];
       xmlns:xsi="[www.w3.org];
       xsi:schemaLocation="
[www.springframework.org] [www.springframework.org];
	
	<bean id="frame" class="nicole.Frame">
		<property name="pagePartsService" ref="pagePartsService" />
	</bean>
	
</beans>

die Fehlermeldung beim Ausführen von grails run-app:
2008-02-18 22:00:22.511::WARN: Nested in org.springframework.beans.factory.Bean
CreationException: Error creating bean with name 'frame' defined in URL [file:./
grails-app/conf/spring/resources.xml]: Instantiation of bean failed; nested exce
ption is org.springframework.beans.BeanInstantiationException: Could not instant
iate bean class [nicole.Frame]: Constructor threw exception; nested exception is
java.lang.NullPointerException:
java.lang.NullPointerException
at nicole.Frame.<init>(Frame.java:20)
at java.security.AccessController.doPrivileged(Native Method)
at RunApp_groovy$_run_closure2_closure7.doCall(RunApp_groovy:67)
at RunApp_groovy$_run_closure2_closure7.doCall(RunApp_groovy)
at Init_groovy$_run_closure6.doCall(Init_groovy:127)
at RunApp_groovy$_run_closure2.doCall(RunApp_groovy:66)
at RunApp_groovy$_run_closure2.doCall(RunApp_groovy)
at RunApp_groovy$_run_closure1.doCall(RunApp_groovy:58)
at RunApp_groovy$_run_closure1.doCall(RunApp_groovy)
at gant.Gant.dispatch(Gant.groovy:271)
at gant.Gant.this$2$dispatch(Gant.groovy)
at gant.Gant.invokeMethod(Gant.groovy)
at gant.Gant.processTargets(Gant.groovy:436)
at gant.Gant.processArgs(Gant.groovy:372)

Es scheint so, als würde etwas mit der Dependency Injection nicht funktionieren. Ich hab auch schon probiert, den Service von Hand in die recources.xml einzufügen, obwohl das nicht nötig sein sollte... Gleiches Resultat.

Auch wenn ich versuche den Service in einer Domain-Klasse zu verwenden, erhalte ich eine NPE:

die Domain-Klasse:
...
def pagePartsService
def background = pagePartsService.getPicBackground()
...

die Fehlermeldung:
java.lang.NullPointerException: Cannot invoke method getPicBackground() on null object
at PageParts.<init>(PageParts.groovy)
at java.security.AccessController.doPrivileged(Native Method)
at RunApp_groovy$_run_closure3_closure8.doCall(RunApp_groovy:89)
at RunApp_groovy$_run_closure3_closure8.doCall(RunApp_groovy)
at Package_groovy$_run_closure8.doCall(Package_groovy:342)
at RunApp_groovy$_run_closure3.doCall(RunApp_groovy:79)
at RunApp_groovy$_run_closure3.doCall(RunApp_groovy)
at RunApp_groovy$_run_closure1.doCall(RunApp_groovy:59)
at RunApp_groovy$_run_closure1.doCall(RunApp_groovy)
at gant.Gant.dispatch(Gant.groovy:271)
at gant.Gant.this$2$dispatch(Gant.groovy)
at gant.Gant.invokeMethod(Gant.groovy)
at gant.Gant.processTargets(Gant.groovy:436)
at gant.Gant.processArgs(Gant.groovy:372)

Hat jemand eine Idee, an was das liegen könnte?

Gruß, Manuel


Stelle deine Groovy-Frage jetzt!


Diese Seite zeigt den Thread "NPE bei der Verwendung von Services" der ehemaligen Webseite groovy-forum.de, welche durch einen Serverunfall zerstört wurde. codekicker.de hat viele Konversationen über die beliebte Programmiersprache Groovy und zugehörige Frameworks wie das Grails-Framework retten können.

Hast Du eine Frage zum Thema Groovy, Grails oder allgemein Java? Viele ehemalige groovy-forum.de Mitglieder beantworten dir auf codekicker.de deine Frage! Stelle jetzt eine Frage!

Viele weitere Diskussionen zu Grails und Groovy befinden sich auf der Threadübersicht des alten groovy-forum.de.