【问题标题】:grails / groovy console VS war file Ambiguous method SQLgrails / groovy 控制台 VS 战争文件 模糊方法 SQL
【发布时间】:2016-04-15 01:51:16
【问题描述】:

所以使用 grails run-app 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] 调用哪个方法: [接口 javax.sql.DataSource] [接口java.sql.Connection]]

四处搜索我没有找到解决方案,所以也许我只是很密集。

我必须对我的 groovy 做些什么,这样当我生成一个 war 文件时我就不必担心重新测试它了?

我已经尝试了将 sql 完全限定为 groovy.sql.SQL 的明显做法,但我没有明确的示例来说明从 run-app 到 war 文件的工作代码。

同样令人沮丧的是 groovy / grails 文档甚至没有提到它,所以我想知道我是否只是不了解这里的基础知识。我很清楚运行时 groovy VS 编译时间,但您仍然会认为,如果您生成了一个 war 文件,那么您从 grails 文档中复制/粘贴的示例将起作用。

Java 1.8 圣杯 2.5.3 Groovy 2.4.5

[interface java.sql.Connection] [参见嵌套异常:groovy.lang.GroovyRuntimeException:方法 groovy.sql.Sql# 的模糊方法重载。 由于以下之间的原型重叠,无法解析为 [null] 调用哪个方法: [接口 javax.sql.DataSource] [接口java.sql.Connection]]

【问题讨论】:

  • datasourceFoo 为空
  • 不,它不为空。这是一个 grails 应用程序。它在 DataSource.groovy 中定义,其工作方式与您在运行命令 run-app 的 grails 控制台中看到的一样
  • 是的,它是空的。这就是错误所说的
  • 请出示您的 DataSource.groovy。
  • dataSourceFoo { loggingSql = true username = "reader" password = "reader1" readOnly = TRUE url = "jdbc:sqlserver://localhost:1433;databaseName=Reports" driverClassName = "com.microsoft. sqlserver.jdbc.SQLServerDriver" dialect = "org.hibernate.dialect.SQLServerDialect" }

标签: sql grails groovy datasource


【解决方案1】:

war file generated by Grails ignores dataSource URL

好像是一巴掌拍在额头上。

需要在生产环境中定义数据源,因为这是 war 文件所期望的。

谢谢大家。

【讨论】:

    猜你喜欢
    • 2011-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多