简体   繁体   中英

Grails 3 upgrade - unable to resolve class grails.plugin.rendering.pdf.PdfRenderingService

I inherited a multi-module grails application based on Grails 2.5.4.

I installed groovy 3.0.4 and grails 3.3.11, and I completed the grails upgrade tasks base on the tutorial provided on the official website ( https://docs.grails.org/3.0.x/guide/upgrading.html ).

I'm dealing with tons of code adaptation but I'm bumping on a particular issue as I try to build the project, I'm facing the following issue:

C:\repo\upgraded-app\myapp-web\grails-app\services\bitt\PdfRenderingService.groovy: 9: unable to resolve class grails.plugin.rendering.pdf.PdfRenderingService
 @ line 9, column 1.
   @Transactional
   ^

The code involved is the following:

import com.lowagie.text.pdf.BaseFont
import grails.transaction.Transactional
import grails.util.Environment
import org.w3c.dom.Document
import org.xhtmlrenderer.pdf.ITextRenderer

@Transactional
class PdfRenderingService extends grails.plugin.rendering.pdf.PdfRenderingService {
...

and my build.gradle file is the following:

buildscript {
    repositories {
        mavenLocal()
        maven { url "https://repo.grails.org/grails/core" }
    }
    dependencies {
        classpath "org.grails:grails-gradle-plugin:$grailsVersion"
        classpath "org.grails.plugins:hibernate5:${gormVersion-".RELEASE"}"
        classpath "com.bertramlabs.plugins:asset-pipeline-gradle:2.15.1"
    }
}

version "0.1"
group "bitt.web"

apply plugin:"eclipse"
apply plugin:"idea"
apply plugin:"war"
apply plugin:"org.grails.grails-web"
apply plugin:"asset-pipeline"
apply plugin:"org.grails.grails-gsp"

repositories {
    mavenLocal()
    maven { url "https://repo.grails.org/grails/core" }
}

dependencies {  
    compile project(':../bitt-core')
    compile "org.springframework.boot:spring-boot-starter-logging"
    compile "org.springframework.boot:spring-boot-autoconfigure"
    compile "org.grails:grails-core"
    compile "org.springframework.boot:spring-boot-starter-actuator"
    compile "org.springframework.boot:spring-boot-starter-tomcat"
    compile "org.grails:grails-web-boot"
    compile "org.grails:grails-logging"
    compile "org.grails:grails-plugin-rest"
    compile "org.grails:grails-plugin-databinding"
    compile "org.grails:grails-plugin-i18n"
    compile "org.grails:grails-plugin-services"
    compile "org.grails:grails-plugin-url-mappings"
    compile "org.grails:grails-plugin-interceptors"
    compile "org.grails.plugins:cache"
    compile "org.grails.plugins:async"
    compile "org.grails.plugins:scaffolding"
    compile "org.grails.plugins:events"
    compile "org.grails.plugins:hibernate5"
    compile "org.hibernate:hibernate-core:5.1.16.Final"
    compile "org.grails.plugins:gsp"

    compile 'org.grails.plugins:spring-security-core:3.2.3'
    compile 'org.grails.plugins:spring-security-acl:3.2.1'
    compile 'org.grails.plugins:grails-markdown:3.0.0'
    compile 'org.grails.plugins:rendering:2.0.3'
    compile 'org.grails.plugins:excel-export:2.1'
    compile 'org.grails.plugins:grails-cookie:2.0.3'
    compile 'org.grails.plugins:spring-security-ui:3.0.2'
    compile 'org.grails.plugins:http-builder-helper:1.1.0'
    compile 'org.grails.plugins:audit-logging:3.0.6'

    console "org.grails:grails-console"
    profile "org.grails.profiles:web"
    runtime "org.glassfish.web:el-impl:2.1.2-b03"
    runtime "com.h2database:h2"
    runtime "org.postgresql:postgresql:9.4-1203-jdbc42"
    runtime "org.apache.tomcat:tomcat-jdbc"
       runtime "com.bertramlabs.plugins:asset-pipeline-grails:2.15.1"
    testCompile "org.grails:grails-gorm-testing-support"
    testCompile "org.grails.plugins:geb"
    testCompile "org.grails:grails-web-testing-support"
    testCompile "org.grails.plugins:geb:1.1.2"
    testRuntime "org.seleniumhq.selenium:selenium-htmlunit-driver:2.47.1"
    testRuntime "net.sourceforge.htmlunit:htmlunit:2.18"
    testRuntime "org.seleniumhq.selenium:selenium-chrome-driver:2.47.1"
}

bootRun {
    jvmArgs('-Dspring.output.ansi.enabled=always')
    addResources = true
    String springProfilesActive = 'spring.profiles.active'
    systemProperty springProfilesActive, System.getProperty(springProfilesActive)
}

tasks.withType(Test) {
    systemProperty "geb.env", System.getProperty('geb.env')
    systemProperty "geb.build.reportsDir", reporting.file("geb/integrationTest")
    systemProperty "webdriver.chrome.driver", System.getProperty('webdriver.chrome.driver')
    systemProperty "webdriver.gecko.driver", System.getProperty('webdriver.gecko.driver')
}

assets {
    minifyJs = true
    minifyCss = true
    includes = ["fonts/*"]
}

The code above mentioned is working fine in Grails 2... but now provokes a compilation error with Grails 3 ... any idea why ?

Thanks.

Upgrading between major Grails versions is not that easy, as Gradle config has big differences.

I suggest you use Grails Starter to get a sample app, unpack the build.gradle , gradle.properties from there, and merge your old config (mostly dependencies) into it.

Configuration has also changed from .groovy files to .yml, consider migrating them as well.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM