Мы используем Eclipse STS для простого проекта Grails. Мы начали с чего-то простого, чтобы понять основы, и это примерно так же просто, как и получается. Проект имеет простой контроллер и java bean, подключенный через ресурсы.groovy. Независимо от того, что мы делаем, мы не можем показаться, чтобы получить боб проводную правильно, Grails жалуется, что свойство боб не доступен для записи или не может иметь геттер/сеттер ....Конфигурация Grails bean config в resources.groovy не работает в Eclipse STS
/* TestBean.groovy */
class TestBean {
def message
String getMessage(){
return message
}
}
.
/* resources.groovy */
import com.ofi.test.TestBean;
beans = {
helloWorldBean(TestBean){
message = "HelloWorld"
}
}
.
/* TestController */
class TestController {
def index = { }
def helloWorldBean
def show = {
def message = helloWorldBean.message
render message
}
}
.
/* UrlMappings.groovy */
class UrlMappings {
static mappings = {
"/test/$var"(controller:"Test"){
action = [GET: "get"]
}
}
.
Проект компилируется, но мы получаем следующее сообщение об ошибке, когда приложение загружает в Затмении (мы даже не можем получить к контроллеру, то TestBean конфиг неисправного)
2011-08-10 11:18:55,252 [main] ERROR context.GrailsContextLoader - Error executing bootstraps: Error creating bean with name 'helloWorldBean': Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'message' of bean class [com.ofi.test.TestBean]: Bean property 'message' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'helloWorldBean': Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'message' of bean class [com.ofi.test.TestBean]: Bean property 'message' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
at org.grails.tomcat.TomcatServer.start(TomcatServer.groovy:212)
at grails.web.container.EmbeddableServer$start.call(Unknown Source)
at _GrailsRun_groovy$_run_closure5_closure12.doCall(_GrailsRun_groovy:158)
at _GrailsRun_groovy$_run_closure5_closure12.doCall(_GrailsRun_groovy)
at _GrailsSettings_groovy$_run_closure10.doCall(_GrailsSettings_groovy:280)
at _GrailsSettings_groovy$_run_closure10.call(_GrailsSettings_groovy)
at _GrailsRun_groovy$_run_closure5.doCall(_GrailsRun_groovy:149)
Я был под впечатлением, что они не требуются в Граалей? – raffian
Вероятно, это комбинация 1), только определяющая сеттер и 2) поле не более строго типизированное. –
Аксессоры не требуются, добавив их не должно быть никакой разницы –