Grails引导XmlSlurper服务无结果

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

我是Grails的新手,正在做我的小项目。我遇到的问题是我的XML阅读服务ReadService有一个函数
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}