2014-09-25 18 views
8

Ich habe ein Grails 2.3.8-Projekt auf 2.4.3 aktualisiert. In 2.3.8 hatten wir Probleme mit der gegabelten Ausführung, also habe ich es deaktiviert. Nun, wenn ich es ihr ermöglichen, und versuchen, eine geänderte Service oder Controller-Klasse zu laden, erhalte ich Fehler wie diese:Grails 2.4.3 kann Controller oder Dienst nicht neu laden

2014-09-25 19:50:37,043 [Thread-11] ERROR plugins.AbstractGrailsPluginManager - 
Plugin [controllers:2.4.3] could not reload changes to file [C:\projects2\...\grails-app\controllers\com\...\AdminController.groovy]: 
Cannot get property 'cacheOperationSource' on null object 
java.lang.NullPointerException: Cannot get property 'cacheOperationSource' on null object 

2014-09-25 19:42:26,251 [Thread-11] ERROR plugins.AbstractGrailsPluginManager - 
Plugin [controllers:2.4.3] could not reload changes to file [C:\projects2\...\grails-app\controllers\...\AdminController.groovy]: 
Cannot get property 'instanceControllerTagLibraryApi' on null object 
java.lang.NullPointerException: Cannot get property 'instanceControllerTagLibraryApi' on null object 

Ich habe in BuildConfig

forkConfig = [maxMemory: 2048, minMemory: 2048, debug: false, minPerm:256, maxPerm: 512] 
grails.project.fork = [ 
    test: forkConfig, 
    run: forkConfig, 
    war: forkConfig, 
    console: forkConfig 
] 

Ich betreibe Grails so:

set JAVA_OPTS=-Dgrails.full.stacktrace=true -Ddisable.auto.recompile=true -Xmx2048M -Xms2048M -XX:PermSize=512m -XX:MaxPermSize=1024m -Djava.net.preferIPv4Stack=true 
grailsw --stacktrace --verbose -Dserver.port=5678 run-app %1 %2 %3 %4 

Der Fehler kommt, egal ob ich in Run-App oder nicht laden. Verstehe ich etwas falsch? Ist es so, dass ich die Ausführung nicht gleichzeitig neu laden und abzweigen kann?

Wenn ich alle gegabelten Einträge auf false setze, funktioniert es wie vorher.

Vielen Dank im Voraus. Mit freundlichen Grüßen: Balázs

Antwort

2

Ein ähnliches Problem wurde in der Mailingliste Grals Dev Discus vor einigen Stunden gestellt. Von der Beispielanwendung, die ich anzeigen konnte, scheint der Fehler aufgetreten zu sein, als der Paketname der Klasse, die bearbeitet wird, "Grails" enthielt. https://groups.google.com/forum/#!topic/grails-dev-discuss/u5gvuwWXoTk

Sie für den in Ihrer Namenskonvention und ändern Sie sich auf etwas speziellere, um Ihre Anwendung überprüfen soll ....

+0

Danke für die Antwort. Nun, wir haben Grals in einigen Paketnamen wie "com.company.grails.util", aber nicht dort, wo der Controller nicht geladen werden kann. Ich probiere es trotzdem ... –

+0

Irgendwelche Ergebnisse mit den Paketnamen? Und von den Mailinglisten, sowohl 'Grails' als auch 'groovy', dass Sie den Paketnamen einchecken sollten – daptordarattler

+0

Ich habe versucht, es in Eclipse zu refaktorieren, aber es ist fehlgeschlagen. Es ist zu kompliziert. Ich habe die gegabelte Ausführung deaktiviert, und alles ist gut. Ich weiß jedoch nicht, ob dies eine Lösung für mich ist, da die Klasse, die nicht neu geladen werden konnte, in Paketnamen weder Grails noch Groovy hat. Tut mir leid, ich kann es nicht versuchen. –