Мы используем Eclipse STS для простого проекта Grails. Мы начали с чего-то простого, чтобы понять основы, и это примерно настолько просто, насколько это возможно. Проект имеет простой контроллер и Java-бин, подключенный через resources.groovy. Независимо от того, что мы делаем, кажется, что мы не можем правильно подключить bean-компонент, Grails жалуется, что свойство bean-компонента недоступно для записи или может не иметь метода получения / установки ....
/* 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"]
}
}
.
Проект компилируется, но мы получаем следующее сообщение об ошибке, когда приложение загружается в Eclipse (мы даже не можем добраться до контроллера, конфигурация 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)