2012-05-09 3 views
0

Grails (v 1.3.7) 용 Jasper 플러그인 (v 1.5.3)을 사용하고 있습니다. 나는 서비스하는 방법에 다음과 같은 코드를 작성했습니다Grails 용 Jasper 플러그인 : null 객체에 대해 generateReport() 메소드를 호출 할 수 없습니다.

import org.codehaus.groovy.grails.plugins.jasper.JasperExportFormat; 
import org.codehaus.groovy.grails.plugins.jasper.JasperReportDef; 
import org.apache.commons.io.FileUtils; 

class ReportService { 

    static transactional = true 
    def jasperService 

    def generateFormA() { 
     def reportDef = new JasperReportDef(name:'test.jasper', fileFormat:JasperExportFormat.PDF_FORMAT) 
     FileUtils.writeByteArrayToFile(new File('C:/test.pdf'), jasperService.generateReport(reportDef).toByteArray()) 

     return 
    } 
} 

나는 서비스 메서드를 호출 할 때 나는 런타임 오류가 다음 무엇입니까 -

의 null 오브젝트

에 방법 generateReport()를 호출 할 수 없습니다

plugin 페이지에 설명 된대로 jasperService를 주입하고 필요한 클래스를 가져 왔습니다. 또한 디버깅 할 때 reportDef가 제대로 인스턴스화되고있는 것으로 나타났습니다.

아무에게도 제안 할 수 있습니까? 당신의 도움을 주셔서 감사합니다.

+0

jasperService가 무엇을 의미합니까? - 그레이스가 널 위해 해줄거야. 정의 된 부분을 보여줄 수 있습니까? –

+0

안녕하세요. Michael, 전 원래 게시물을 편집하여 전체 서비스를 포함 시켰습니다. 나는 generateFormA() 메소드를 호출한다. –

답변

0

마이클, 통찰력에 감사드립니다.

커튼 뒤에있는 장면에 대한 더 나은 아이디어를 얻으려면 플러그인 소스 코드를 다운로드하여 응용 프로그램에서 직접 사용했습니다. 밖으로, JasperService 플러그인의 클래스는 데이터 소스 콩을 사용합니다. 적인 DataSource.getConnection() 메서드 (이, 차례 차례로, 가 널 개체 오류을 던지는)가 호출 될 때

class JasperService { 
    boolean transactional = true 
    javax.sql.DataSource dataSource 
    ..... 
    private JasperPrint generatePrinter(JasperReportDef reportDef) { 
     ..... 
     def conn = dataSource.getConnection() 
    jasperPrint = JasperFillManager.fillReport(resource.inputStream, reportDef.parameters, conn) 
     ..... 
    } 
    ........... 
} 

그러나이는 dataSource는 인스턴스화되지 않습니다. Grails는 플러그인이 아닌 Grails와 관련이 있습니다. 그래서 아래처럼 JasperService 클래스의 JasperPrint() 메소드를 수정하여 작동 시켰습니다.

def dataSource = org.codehaus.groovy.grails.commons.ApplicationHolder.application.mainContext.dataSource 
def conn = dataSource.getConnection() 
0

구문이 정상적으로 작동하며 정상적으로 작동합니다. 내가 응용 프로그램을 중지하고 grails clean 명령을 실행하려고합니다. 때때로 이것은 도움이됩니다.

관련 문제