2016-03-03 6 views
-2

миграции старых 2.2.2 приложения 3.1.2, могу я знаю, почему это приложение происходит сбой из-за bootstrap.groovy любой помощь будет оценена спасибоBootStrap.groovy вызывая Grails на провал

с помощью: Grails 3.1 0,2, MySQL Workbench 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

Try Grails 3.1.1 или 3.1.3. Версия 3.1.2 содержит некоторые ошибки с проверкой. –

+0

сбросьте свое сохранение. * .save (failOnError: true, flush: true) – Arjang

ответ

0

После просмотра вашего класса State я проверил, что поле '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

Похоже updates поля на State является 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: невозможно разрешить состояние класса @ строка 6, столбец 3. новое состояние (состояние: «Холдинг», обновления : []). save (failOnError: true) ^ –

+2

Обновите свой вопрос, чтобы показать свой новый код. – ataylor

+0

Возможно, нет никакой веской причины для инициализации 'updates' перед сохранением в любом случае. –