2015-12-11 2 views
2

Я пытаюсь перенести приложение старого grails в grails 3. Я использую grails 3.0.10. Я использовал плагин для рендеринга в своем старом приложении для создания PDF-файлов и создал кучу PDF-файлов, которые я хотел бы сохранить без изменений, поэтому я пытаюсь установить этот плагин рендеринга в моем приложении grails 3. Как было предложено, я добавил следующую строку в мое build.gradle под зависимостями:У вас возникли проблемы с gpc rendering plugin для grails 3 app

compile "org.grails.plugins:rendering:2.0.0-SNAPSHOT" 

Это, кажется, правильно тянуть этот плагин .jar файл и запустить-приложение работает. Однако, когда я пытаюсь отобразить gsp как PDF через мой контроллер, я получаю исключение NullPointerException, которое бросает некоторый код в плагин рендеринга.

Вот мой код для генерации PDF из метода контроллера:

renderPdf(template: "/pdfs/test", model: [name : 'Amarish'], filename: 'Hello-There.pdf') 

Поскольку выше не работает, я пробовал отдельно другой способ, включив pdfRenderingService в контроллер через инъекции зависимостей, а затем попробовал следующее:

ByteArrayOutputStream bytes = pdfRenderingService.render(template: "/pdfs/test", model: [name: 'Amarish']) 
response.setContentLength(bytes.length) 
response.setContentType('application/pdf') 
response.outputStream.write(bytes) 

Включая трассировку стека ниже. Не могли бы вы сообщить мне, как я могу исправить эту проблему?

ERROR org.grails.web.errors.GrailsExceptionResolver - NullPointerException occurred when processing request: [GET] /test/testPDF 
Stacktrace follows: 
java.lang.reflect.InvocationTargetException: null 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) ~[na:1.7.0_79] 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) ~[na:1.7.0_79] 
at java.lang.Thread.run(Thread.java:745) [na:1.7.0_79] 
Caused by: java.lang.NullPointerException: null 
at java.beans.Introspector.getPublicDeclaredMethods(Introspector.java:1281) ~[na:1.7.0_79] 
at java.beans.Introspector.getTargetMethodInfo(Introspector.java:1141) ~[na:1.7.0_79] 
at java.beans.Introspector.getBeanInfo(Introspector.java:416) ~[na:1.7.0_79] 
at java.beans.Introspector.getBeanInfo(Introspector.java:163) ~[na:1.7.0_79] 
at grails.plugins.rendering.document.RenderEnvironment.init(RenderEnvironment.groovy:31) ~[rendering-2.0.0-SNAPSHOT.jar:na] 
at grails.plugins.rendering.document.RenderEnvironment.with(RenderEnvironment.groovy:68) ~[rendering-2.0.0-SNAPSHOT.jar:na] 
at grails.plugins.rendering.document.RenderEnvironment.with(RenderEnvironment.groovy:60) ~[rendering-2.0.0-SNAPSHOT.jar:na] 
at grails.plugins.rendering.document.XhtmlDocumentService.generateXhtml(XhtmlDocumentService.groovy:65) ~[rendering-2.0.0-SNAPSHOT.jar:na] 
at grails.plugins.rendering.document.XhtmlDocumentService.createDocument(XhtmlDocumentService.groovy:35) ~[rendering-2.0.0-SNAPSHOT.jar:na] 
at grails.plugins.rendering.RenderingService.render(RenderingService.groovy:36) ~[rendering-2.0.0-SNAPSHOT.jar:na] 
at grails.plugins.rendering.RenderingService.render(RenderingService.groovy:35) ~[rendering-2.0.0-SNAPSHOT.jar:na] 
at grails.plugins.rendering.RenderingService.render(RenderingService.groovy:65) ~[rendering-2.0.0-SNAPSHOT.jar:na] 
at grails.plugins.rendering.RenderingTrait$Trait$Helper.renderPdf(RenderingTrait.groovy:47) ~[rendering-2.0.0-SNAPSHOT.jar:na] 
at com.svp.controller.TestController$_closure1.doCall(TestController.groovy:14) ~[main/:na] 
... 3 common frames omitted 

ответ

4

Что вам нужно в зависимости build.gradle является

runtime "org.springframework:spring-test:4.2.1.RELEASE" 

и ваш код будет просто работать нормально. Удачи!

Вы также можете добавить последнюю версию с here

+0

работал большой на Грааль 3.2. Большое спасибо! Интересно, как возможно, что так много вещей вызывают ошибки в плагинах Grails3 ... – user1913596