Grails引导XmlSlurper服务无结果
我是Grails的新手,正在做我的小项目。我遇到的问题是我的XML阅读服务ReadService有一个函数Grails引导XmlSlurper服务无结果,grails,service,Grails,Service,我是Grails的新手,正在做我的小项目。我遇到的问题是我的XML阅读服务ReadService有一个函数read(),返回XmlSlurper()。函数在控制台中使用println写入xml文件时读取xml文件。但是当我试图在Bootstrap中打印结果XmlSlurper时,我什么也得不到 class BootStrap { def ReadService def init = { servletContext -> def xml = ReadServ
read()
,返回XmlSlurper()
。函数在控制台中使用println
写入xml文件时读取xml文件。但是当我试图在Bootstrap中打印结果XmlSlurper
时,我什么也得不到
class BootStrap {
def ReadService
def init = {
servletContext ->
def xml = ReadService.read()
println xml
}
}
有人能告诉我我做错了什么吗?看起来你只是拼错了你的服务。 您的
ReadService
必须保存在grails app/services
中
要使用该服务,您必须这样声明它们
def readService
在init
中,您可以按如下方式使用它们:
def xml = readService.read()
正如您所看到的,第一个字母必须是小写。好的,我现在看到的问题不是读取xml本身,而是使用它引导,因为将服务名称更改为lovercase很有帮助。我使用ReaderService读取带有地址的xml文件并构建地址对象。这是我的引导代码: ` 当我运行它时,我得到了经典的“没有这样的属性”错误 当然,我检查过了,对定义的变量进行Boostraping的效果很好,如下所示:
def karolzam = new mobilmed.Adres(ulica:"Turkusowa", dom:"8/22", miejscowość:"Lublin", kodPocztowy:"20-572", poczta:"Lublin").save()
if(karolzam.hasErrors()){
println karolzam.errors}
看起来引导程序没有“看到”可以在控制台上打印的变量。:/
| Error 2012-08-28 06:42:36,784 [pool-7-thread-1] ERROR context.GrailsContextLoader - Error executing bootstraps: No such property: adres for class: BootStrap
Message: No such property: adres for class: BootStrap
Line | Method
->> 10 | doCall in BootStrap$_closure1
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 301 | evaluateEnvironmentSpecificBlock in grails.util.Environment
| 294 | executeForEnvironment . . . . . in ''
| 270 | executeForCurrentEnvironment in ''
| 303 | innerRun . . . . . . . . . . . . in java.util.concurrent.FutureTask$Sync
| 138 | run in java.util.concurrent.FutureTask
| 886 | runTask . . . . . . . . . . . . in java.util.concurrent.ThreadPoolExecutor$Worker
| 908 | run in ''
^ 662 | run . . . . . . . . . . . . . . in java.lang.Thread
def karolzam = new mobilmed.Adres(ulica:"Turkusowa", dom:"8/22", miejscowość:"Lublin", kodPocztowy:"20-572", poczta:"Lublin").save()
if(karolzam.hasErrors()){
println karolzam.errors}