因此,使用grails运行应用程序VS war文件。
我的期望是,要生成一个war文件并将其放入Tomcat,我所要做的就是键入war
下面的代码在RUN-APP控制台上运行良好。代码被精简为不起作用的部分。
package foo
import groovy.sql.Sql;
class FooAlertJob {
static triggers = {
simple name: 'mySimpleTrigger', startDelay:5000, repeatInterval: 1000*10l
}
def dataSourceFoo
def execute() {
def sql = new Sql (dataSourceFoo)
}
}
当运行tomcat和从grails构建的war文件时,我得到了(粘贴在下面)
由于以下对象之间的原型重叠,无法解析为[null]调用哪个方法:[interfacejavax.sql.DataSource][interfacejava.sql.Connection]]
我在谷歌上搜索并没有找到解决方案,所以也许我只是很笨。
我必须对我的groovy做些什么,这样当我生成一个war文件时,我就不必担心重新测试它了?
我已经尝试过将sql完全限定为groovy.sql.sql的显而易见的方法,但我没有一个从运行应用程序到war文件的工作代码的清晰示例。
同样令人沮丧的是groovy/grails文档甚至没有提到它,所以我想知道我是否只是不理解这里的基础知识。我对运行时groovy VS编译时很清楚,但如果您生成一个war文件,您仍然会认为从grails文档中复制/粘贴的示例会起作用。
java 1.8圣杯2.5.3Groovy 2.4.5
[interfacejava.sql.Connection][参见嵌套异常:groovy.lang.GroovyRuntimeException:方法groovy.sql.sql#的方法重载不明确。由于以下对象之间的原型重叠,无法解析要为[null]调用的方法:[interfacejavax.sql.DataSource][interfacejava.sql.Connection]]
看起来是手掌拍在前额上。
数据源需要在生产环境中定义,因为这正是war文件所期望的。
谢谢大家。