gpt4 book ai didi

grails - 在Grails中使用Groovy库并获取 'No suitable ClassLoader found for grab'

转载 作者:行者123 更新时间:2023-12-02 14:23:47 25 4
gpt4 key购买 nike

我正在玩Grails / Groovy,并且使用groovy-wslite编写了一些直接的Groovy代码。该代码是这样开始的

send-request.groovy

@Grab(group='com.github.groovy-wslite', module='groovy-wslite', version='1.1.0')
import wslite.soap.*

当我在Grails代码中实现它并查看 Controller / Action 时,我得到了
Error 500: Internal Server Error
URI: /FormProj/hello/trigger
Class: java.lang.RuntimeException
Message: No suitable ClassLoader found for grab

这是当前状态下的代码(我尝试了很多其他事情)

HelloController.groovy
package com.demo
import groovy.grape.Grape

class HelloController {

def index() { }

def sayHi() {
return [
greeting : "Hi there, ${ params.name }"
]
}

def trigger() {
Grape.grab(group:'com.github.groovy-wslite', module:'groovy-wslite', version:'1.1.0')

}
}

如您所知,我对Grails / Groovy以及Java的所有东西都非常满意。我确实知道有Grails的wslite插件,但是肯定可以正常工作吗?

Cereal :2.3.8

Groovy:2.2.2

更新

根据Ian Robert的建议,我通过将这一行添加到 BuildConfig块中来更新了 dependencies文件
compile 'com.github.groovy-wslite:groovy-wslite:1.1.0'

并更新了我的 Controller ,使其看起来像这样

HelloController.groovy
package ws.thejspot
import wslite.soap.*

class HelloController {

def index() { }

def sayHi() {
return [
greeting : "Hi there, ${ params.name }"
]
}

def trigger() {
def client = new SOAPClient('URL')
}
}

不幸的是,现在,IDE GGTS在 Controller “无法解析类SOAPClient”中显示错误。

最佳答案

与其尝试使用@Grab下载依赖项,不如使用标准Grails依赖项机制-编辑grails-app/conf/BuildConfig.groovy并查找grails.project.dependency.resolution闭包。在里面,您应该在dependencies块中添加

compile 'com.github.groovy-wslite:groovy-wslite:1.1.0'

并从 Controller 中删除所有与Grape相关的内容,仅保留 import wslite.soap.*
您可能需要运行
grails compile --refresh-dependencies

至少一次以确保Grails接受对 BuildConfig的更改-每次编译时都故意不执行完整的依赖项解析,以免减慢构建速度,因此您需要告诉它在您刷新时刷新知道它需要。

关于grails - 在Grails中使用Groovy库并获取 'No suitable ClassLoader found for grab',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25427852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com