2016-03-03 59 views
-2

遷移舊2.2.2應用3.1.2,我可以知道爲什麼這個程序是因爲BootStrap.groovy中 任何幫助將不勝感激的崩潰使用謝謝BootStrap.groovy中造成Grails的失敗

:Grails的3.1 。2,MySQL工作臺6

這是在BootStrap.groovy中以導致整個應用程序停止運行

import grailsapp.Location; 
import grailsapp.State; 
import grailsapp.User; 
import grailsapp.Type; 

class BootStrap { 

    def init = { servletContext -> 

     new State(state: "Issuable", updates: [:]).save(failOnError:true) 
     new State(state: "Holding", updates: [:]).save(failOnError:true) 
     new State(state: "In for repair", updates: [:]).save(failOnError:true) 

     new Location(location: "L163", specific: "Rack 3A", updates: [:]).save(failOnError:true) 
     new Location(location: "L163", specific: "Rack 3B", updates: [:]).save(failOnError:true) 
     new Location(location: "L163", specific: "Rack 3C", updates: [:]).save(failOnError:true) 

     new User(username:"blah", password: User.hashPassword("password"), firstName:"blah", lastName:"blah", isAdmin:true, updates:[:]).save(failOnError:true) 

     new Type(type:"Dell E6500").save(failOnError:true) 
     new Type(type:"Dell E6510").save(failOnError:true) 
     new Type(type:"Dell E6520").save(failOnError:true) 

    } 
    def destroy = { 
    } 
} 

這些都是它造成

錯誤
ERROR org.springframework.boot.SpringApplication - Application startup failed 
grails.validation.ValidationException: Validation Error(s) occurred during save(): 
- Field error in object 'grailsapp.State' on field 'updates': rejected value [{}]; codes [grailsapp.State.updates.typeMi 
smatch.error,grailsapp.State.updates.typeMismatch,state.updates.typeMismatch.error,state.updates.typeMismatch,typeMismat 
ch.grailsapp.State.updates,typeMismatch.updates,typeMismatch.java.util.Set,typeMismatch]; arguments [updates]; default m 
essage [Could not find matching constructor for: java.util.Set()] 

     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_65] 
     at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_65] 
     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8 
.0_65] 
     at java.lang.reflect.Constructor.newInstance(Constructor.java:422) ~[na:1.8.0_65] 
     at org.springsource.loaded.ri.ReflectiveInterceptor.jlrConstructorNewInstance(ReflectiveInterceptor.java:1075) ~ 
[springloaded-1.2.5.RELEASE.jar:1.2.5.RELEASE] 
     at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:83) ~[groovy-2.4.6.jar:2.4.6] 
     at org.codehaus.groovy.reflection.CachedConstructor.doConstructorInvoke(CachedConstructor.java:77) ~[groovy-2.4. 
6.jar:2.4.6] 
     at groovy.lang.MetaClassImpl.invokeConstructor(MetaClassImpl.java:1714) ~[groovy-2.4.6.jar:2.4.6] 
     at groovy.lang.MetaClassImpl.invokeConstructor(MetaClassImpl.java:1531) ~[groovy-2.4.6.jar:2.4.6] 
     at org.codehaus.groovy.runtime.InvokerHelper.invokeConstructorOf(InvokerHelper.java:954) ~[groovy-2.4.6.jar:2.4. 
6] 
     at org.codehaus.groovy.runtime.DefaultGroovyMethods.newInstance(DefaultGroovyMethods.java:15640) ~[groovy-2.4.6. 
jar:2.4.6] 
     at org.grails.orm.hibernate.AbstractHibernateGormInstanceApi.save(AbstractHibernateGormInstanceApi.groovy:131) ~ 
[grails-datastore-gorm-hibernate-core-5.0.2.RELEASE.jar:na] 
     at org.grails.datastore.gorm.GormEntity$Trait$Helper.save(GormEntity.groovy:140) ~[grails-datastore-gorm-5.0.2.R 
ELEASE.jar:na] 
     at org.grails.datastore.gorm.GormEntity$Trait$Helper$save.call(Unknown Source) ~[na:na] 
     at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) [groovy-2.4.6.jar:2.4.6 
] 
     at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) [groovy-2.4.6.jar:2.4.6 
] 
     at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133) [groovy-2.4.6.jar:2.4.6 
] 
     at grailsapp.State.save(State.groovy) ~[main/:na] 
     at grailsapp.State.save(State.groovy) ~[main/:na] 
     at org.grails.datastore.gorm.GormEntity$save.call(Unknown Source) ~[na:na] 
     at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) [groovy-2.4.6.jar:2.4.6 
] 
     at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) [groovy-2.4.6.jar:2.4.6 
] 
     at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) [groovy-2.4.6.jar:2.4.6 
] 
     at BootStrap$_closure1.doCall(BootStrap.groovy:10) ~[main/:na] 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_65] 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_65] 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_65] 
     at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_65] 
     at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1426) ~[springloa 
ded-1.2.5.RELEASE.jar:1.2.5.RELEASE] 
     at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) ~[groovy-2.4.6.jar:2.4.6] 
     at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) ~[groovy-2.4.6.jar:2.4.6] 
     at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) ~[groovy-2.4.6 
.jar:2.4.6] 
     at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1021) ~[groovy-2.4.6.jar:2.4.6] 
     at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1086) ~[groovy-2.4.6.jar:2.4.6] 
     at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1021) ~[groovy-2.4.6.jar:2.4.6] 
     at groovy.lang.Closure.call(Closure.java:426) ~[groovy-2.4.6.jar:2.4.6] 
     at groovy.lang.Closure.call(Closure.java:420) ~[groovy-2.4.6.jar:2.4.6] 
     at grails.util.Environment.evaluateEnvironmentSpecificBlock(Environment.java:437) ~[grails-bootstrap-3.1.2.jar:3 
.1.2] 
     at grails.util.Environment.executeForEnvironment(Environment.java:430) ~[grails-bootstrap-3.1.2.jar:3.1.2] 
     at grails.util.Environment.executeForCurrentEnvironment(Environment.java:406) ~[grails-bootstrap-3.1.2.jar:3.1.2 
] 
     at org.grails.web.servlet.boostrap.DefaultGrailsBootstrapClass.callInit(DefaultGrailsBootstrapClass.java:62) ~[g 
rails-web-3.1.2.jar:3.1.2] 
     at org.grails.web.servlet.context.GrailsConfigUtils.executeGrailsBootstraps(GrailsConfigUtils.java:65) ~[grails- 
web-3.1.2.jar:3.1.2] 
     at org.grails.plugins.web.servlet.context.BootStrapClassRunner.onStartup(BootStrapClassRunner.groovy:53) ~[grail 
s-plugin-controllers-3.1.2.jar:3.1.2] 
     at grails.boot.config.GrailsApplicationPostProcessor.onApplicationEvent(GrailsApplicationPostProcessor.groovy:24 
0) ~[grails-core-3.1.2.jar:3.1.2] 
     at grails.boot.config.GrailsApplicationPostProcessor.onApplicationEvent(GrailsApplicationPostProcessor.groovy) ~ 
[grails-core-3.1.2.jar:3.1.2] 
     at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMult 
icaster.java:163) ~[spring-context-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
     at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMult 
icaster.java:136) ~[spring-context-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
     at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:3 
81) ~[spring-context-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
     at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:3 
35) ~[spring-context-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
     at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java: 
855) ~[spring-context-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
     at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationC 
ontext.java:140) ~[spring-boot-1.3.2.RELEASE.jar:1.3.2.RELEASE] 
     at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:541) ~ 
[spring-context-4.2.4.RELEASE.jar:4.2.4.RELEASE] 
     at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext 
.java:118) ~[spring-boot-1.3.2.RELEASE.jar:1.3.2.RELEASE] 
     at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:766) ~[spring-boot-1.3.2.RELEASE.ja 
r:1.3.2.RELEASE] 
     at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:361) ~[spring-boot- 
1.3.2.RELEASE.jar:1.3.2.RELEASE] 
     at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) ~[spring-boot-1.3.2.RELEASE.jar:1. 
3.2.RELEASE] 
     at grails.boot.GrailsApp.run(GrailsApp.groovy:55) [grails-core-3.1.2.jar:3.1.2] 
     at grails.boot.GrailsApp.run(GrailsApp.groovy:365) [grails-core-3.1.2.jar:3.1.2] 
     at grails.boot.GrailsApp.run(GrailsApp.groovy:354) [grails-core-3.1.2.jar:3.1.2] 
     at grails.boot.GrailsApp$run.call(Unknown Source) [grails-core-3.1.2.jar:3.1.2] 
     at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) [groovy-2.4.6.jar:2.4.6 
] 
     at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) [groovy-2.4.6.jar:2.4.6 
] 
     at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133) [groovy-2.4.6.jar:2.4.6 
] 
     at grailsapp.Application.main(Application.groovy:8) [main/:na] 

FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':bootRun'. 
> Process 'command 'C:\Program Files\Java\jdk1.8.0_65\bin\java.exe'' finished with non-zero exit value 1 

* Try: 
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. 
| Error Failed to start server (Use --stacktrace to see the full trace) 

state.groovy

package grailsapp 

class State { 

    String state 

    static hasMany = [updates: Update] 

    static constraints = { 
     state blank:false 
    } 

    String toString() { 
     state 
    } 

    static ArrayList<State> getStates() { 
     State.findAllByStateNotEqual("Issued") 
    } 
} 
+0

嘗試Grails 3.1.1或3.1.3。 3.1.2版本有一些驗證錯誤。 –

+0

刷新你的保存。 * .save(failOnError:true,flush:true) – Arjang

回答

0

看到你的狀態類後,我檢查'updates'字段是hasMany關係。它說關係從0到很多對象。我的意思是,這是不是強制性的指定更新,因此,如果你寫你的狀態類沒有更新,它必須是有效的:

new State(state: "Issuable") new State(state: "Holding") new State(state: "In for repair")

你現在的問題是,如果你嘗試: new State(state: "Issuable", updates: [:]).save(failOnError:true) or new State(state: "Issuable", updates: []).save(failOnError:true)

你會得到一個錯誤,因爲更新不是地圖或列表。它必須是「更新」類的對象。

1

它看起來像Stateupdates場是Set,但你與Map初始化。嘗試:

new State(state: "Issuable", updates: []).save(failOnError:true) 
new State(state: "Holding", updates: []).save(failOnError:true) 
new State(state: "In for repair", updates: []).save(failOnError:true) 
+0

C:\ dir \ init \ BootStrap.groovy:6:無法解析類狀態 @ line 6,column 3. new State(state:「Holding」,updates :[])。save(failOnError:true) ^ –

+2

更新您的問題以顯示您的新代碼。 – ataylor

+0

無論如何,在保存之前初始化'updates'可能沒有什麼好的理由。 –

相關問題