1

PDFを生成するには、サービスでxslを渡し、ファイルを読み取る必要があります。私はいつも次のようなエラーメッセージを受け取ります

ドキュメントが空です (XSLT スタイルシートに問題がある可能性があります).. スタックトレースは次のとおりです: メッセージ: ドキュメントが空です (XSLT スタイルシートに問題がある可能性があります)。

私はまた、ビーンのresource.xmlまたはresource.groovyのファイルを自動配線します

class MyClassHolder{
   Resource template
}

//in my controller

class MyController{
   method(){
   File resource = classHolder.template.file
   def reader = new FileReader(resource)
   myservice.convert(reader)
    }
}
4

2 に答える 2

0

これを web-app フォルダーに配置し、Grails 2 を使用している場合は、Grails Resource Locator を使用できます。

class MyService {
    def grailsResourceLocator
    def templateResource

    @PostConstruct
    init() {
        templateResource = grailsResourceLocator.findResourceForURI('/resources/example.xsl')
    }
    def convert() {
        // no need to pass in resource or filereader, can use file or inputStream
        def templateFile = templateResource.file
        def templateStream = templateResource.inputStream
    }
}
class MyController {
    MyService myService

    method() {
        myService.convert()
    }
}

便利なヒント: Spock でこれをモックするには、GroovyPageStaticResourceLoader を使用します

@TestFor(MyService)
class MyServiceSpec extends Specification {
    def setup() {
        service.grailsResourceLocator = Mock(GroovyPageStaticResourceLocator)
    }
}
于 2015-11-30T17:28:53.093 に答える