2017-04-14 5 views
0

私はPDFへのビューをレンダリングしたいと私はで開始する最も簡単なGSP-ファイルをしようとしたプラグイン2.0.3GrailsのレンダリングプラグインはGrails3.2.4では動作しませんか?

をレンダリングするGrailsのを使用してみました:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<!-- 
    To change this license header, choose License Headers in Project Properties. 
    To change this template file, choose Tools | Templates 
    and open the template in the editor. 
--> 

<%@ page contentType="text/html;charset=UTF-8" %> 

<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>Sample title</title> 
    </head> 
    <body> 
     <h1>Sample line</h1> 
    </body> 
</html> 

とコントローラで:

def report() { 
     def OfferHeader oh = OfferHeader.get(15) 
     println(">>> Offerheader: "+oh.sawMill) 
//  render(template: "/offerHeader/Test") 
     renderPdf(template: "/offerHeader/Test", filename: "offertrapport.pdf") 

    } 

そしてそれはで終わる:

2017-04-14 11:26:55.989 ERROR --- [nio-8080-exec-6] o.g.web.errors.GrailsExceptionResolver : NullPointerException occurred when processing request: [GET] /offerHeader/report/15 
Stacktrace follows: 

java.lang.reflect.InvocationTargetException: null 
    at org.grails.core.DefaultGrailsControllerClass$ReflectionInvoker.invoke(DefaultGrailsControllerClass.java:210) 
    at org.grails.core.DefaultGrailsControllerClass.invoke(DefaultGrailsControllerClass.java:187) 
    at org.grails.web.mapping.mvc.UrlMappingsInfoHandlerAdapter.handle(UrlMappingsInfoHandlerAdapter.groovy:90) 
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963) 
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897) 
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) 
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861) 
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) 
    at org.springframework.boot.web.filter.ApplicationContextHeaderFilter.doFilterInternal(ApplicationContextHeaderFilter.java:55) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317) 
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127) 
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) 
    at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115) 
    at grails.plugin.springsecurity.web.UpdateRequestContextHolderExceptionTranslationFilter.doFilter(UpdateRequestContextHolderExceptionTranslationFilter.groovy:64) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) 
    at grails.plugin.springsecurity.web.filter.GrailsAnonymousAuthenticationFilter.doFilter(GrailsAnonymousAuthenticationFilter.groovy:53) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) 
    at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:158) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) 
    at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:169) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) 
    at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) 
    at grails.plugin.springsecurity.web.authentication.logout.MutableLogoutFilter.doFilter(MutableLogoutFilter.groovy:62) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) 
    at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) 
    at grails.plugin.springsecurity.web.SecurityRequestHolderFilter.doFilter(SecurityRequestHolderFilter.groovy:58) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) 
    at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214) 
    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177) 
    at org.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:77) 
    at org.grails.web.filters.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:67) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: java.lang.NullPointerException: null 
    at java.beans.Introspector.getPublicDeclaredMethods(Introspector.java:1337) 
    at java.beans.Introspector.getTargetMethodInfo(Introspector.java:1197) 
    at java.beans.Introspector.getBeanInfo(Introspector.java:426) 
    at java.beans.Introspector.getBeanInfo(Introspector.java:173) 
    at grails.plugins.rendering.document.RenderEnvironment.init(RenderEnvironment.groovy:31) 
    at grails.plugins.rendering.document.RenderEnvironment.with(RenderEnvironment.groovy:68) 
    at grails.plugins.rendering.document.RenderEnvironment.with(RenderEnvironment.groovy:60) 
    at grails.plugins.rendering.document.XhtmlDocumentService.generateXhtml(XhtmlDocumentService.groovy:65) 
    at grails.plugins.rendering.document.XhtmlDocumentService.createDocument(XhtmlDocumentService.groovy:35) 
    at grails.plugins.rendering.RenderingService.render(RenderingService.groovy:36) 
    at grails.plugins.rendering.RenderingService.render(RenderingService.groovy:35) 
    at grails.plugins.rendering.RenderingService.render(RenderingService.groovy:65) 
    at grails.plugins.rendering.RenderingTrait$Trait$Helper.render(RenderingTrait.groovy:66) 
    at grails.plugins.rendering.RenderingTrait$Trait$Helper.renderPdf(RenderingTrait.groovy:45) 
    at com.torntrading.portal.OfferHeaderController.$tt__report(OfferHeaderController.groovy:123) 
    at grails.transaction.GrailsTransactionTemplate$2.doInTransaction(GrailsTransactionTemplate.groovy:96) 
    at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133) 
    at grails.transaction.GrailsTransactionTemplate.execute(GrailsTransactionTemplate.groovy:93) 
    ... 37 common frames omitted 

私は何をしていますmは発行?あるいは、このバージョンのgrails(3.2.4)で動作することは期待されていませんか?

多分もっと良いプラグインがありますか?

答えて

1

まずbuild.gradleには、以下の依存関係を追加します。次に

<g:link action="report" params='[offerId: "${offer.id}"]'>To PDF</g:link> 

dependencies { 
    ... 
    runtime "org.springframework:spring-test:4.2.1.RELEASE" 
} 

その後、我々はGSPでのように、リンクのクリックでPDFファイルをレンダリングするつもりだと言うことができますコントローラ内:

def report() { 
    def offer = Offer.get(params.offerId) 
    renderPdf(template: "offerpdf", model: [offer: offer], filename: "offer.pdf") 
} 

オファービューのディレクトリには、_offerpdf.gspという名前のテンプレートgspがあります

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html> 
<head> 
    <title>Offer</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
</head> 
<body> 
<h1>Offer: ${offer.id}</h1> 
</body> 
</html> 
+0

ありがとうございます!それは、build.gradleのラインが私が逃したものだったことを意味しました。私はちょうどあなたがこのことを見つけたのだろうか?私は解決策を見つけることをたくさん探していて、ドキュメントなどを読んだが、結果はなかった。そのようなことを探すべき場所を知ることは役に立ちます。 – larand

関連する問題