首页 > 解决方案 > CrafterCMS:找不到合适的 ClassLoader 可供抓取

问题描述

我克隆了一个在旧版本 (3.0.x) 中创建的新站点,但在从构造函数实例化 bean 时出现错误。

由于错误,我无法查看或构建应用程序上下文。 在此处输入图像描述

这是运行时异常:

Caused by: java.lang.RuntimeException: No suitable ClassLoader found for grab

jdbc 类的片段:

@Grab(group='org.springframework', module = 'spring-jdbc', version = '4.1.9.RELEASE')
@Grab(group='commons-dbcp', module='commons-dbcp', version='1.2.2')
@Grab(group='com.sap.cloud.db.jdbc', module='ngdbc', version='2.2.16')

import org.apache.commons.dbcp.BasicDataSource
import org.springframework.jdbc.core.JdbcTemplate

class SAPJdbcTemplate extends JdbcTemplate {

    def SAPJdbcTemplate(BasicDataSource rq1DataSource, global) {
        super()
        rq1DataSource.setDriverClassName(global.getProperty("studio.db.driverClassName"))
        rq1DataSource.setUrl(global.getProperty("studio.db.url"))
        rq1DataSource.setUsername(global.getProperty("studio.db.username"))
        rq1DataSource.setPassword(global.getProperty("studio.db.password"))
        this.setDataSource(rq1DataSource)
    }
}

豆从application-context.xml

<bean id="SAPJdbcTemplate" class="com.troo.services.SAPJdbcTemplate">
    <constructor-arg index="0" ref="rq1DataSource"/>
    <constructor-arg index="1" ref="crafter.propertyResolver"/>
</bean>

标签: groovycontent-management-systemcrafter-cms

解决方案


Please review this article

https://docs.craftercms.org/en/3.1/developers/projects/engine/api/script-sandbox-configuration.html#adding-dependencies-with-grapes

Crafter CMS has a Groovy security sandbox that you need to consider.


推荐阅读