Groovy LinkedHashMap和Map参数类型上的MissingMethodException

Groovy LinkedHashMap和Map参数类型上的MissingMethodException,groovy,Groovy,我正在运行以下groovy脚本。我面临以下例外情况: 提交事件时出错:groovy.lang.MissingMethodException:没有方法签名:static com.wipro.core.common.BaseSpec.auditRequest()适用于参数类型:(java.lang.String、java.lang.String、java.util.LinkedHashMap)值:[35796698,] 可能的解决方案:auditRequest(java.lang.Long、java

我正在运行以下groovy脚本。我面临以下例外情况:

提交事件时出错:groovy.lang.MissingMethodException:没有方法签名:static com.wipro.core.common.BaseSpec.auditRequest()适用于参数类型:(java.lang.String、java.lang.String、java.util.LinkedHashMap)值:[35796698,] 可能的解决方案:auditRequest(java.lang.Long、java.lang.String、java.lang.String、java.util.Map)

我参考了以前关于groovy中缺少方法的帖子,并检查了代码中的拼写错误(没有发现)。非常感谢您的帮助

private String doSyncEvent(def ctx) {
    def result = ""
    def commId = getStringCommId(sql)
    def xmlText = replaceXmlTag(ctx.message, 'CommId', commId)
    def endPointURL = config["core.rest.url"]
    endPointURL = endPointURL + ctx.serviceUrl

    def id = syncRequestCount.getAndIncrement()
    sendForEvaluationWithContext(sql, endPointURL, commId, xmlText, ctx)

    return result;
}

static void sendForEvaluationWithContext(def sql, def url,def commId, def message, Map ctx) {   
    auditRequest(commId, url, message, ctx)
    response = EventPublisher.sendForEvaluation(url, message)
}

static String auditRequest(final Long commId, final String target, final String message, final Map ctx) {
    final LobHandler oracleLobHandler = (LobHandler) AppContext.getBean("oracleLobHandler")
    final JdbcTemplate jdbcTemplate = (JdbcTemplate) AppContext.getBean("testScriptJdbcTemplate")
    final def userId = Utils.getHostName().toUpperCase()
    String msgTrackerAuditSql = "INSERT INTO MSG_TRACKER (COMM_ID,EVENT_TYPE, TIME_SENT) VALUES (?, ?, ?)"
    PlatformTransactionManager transactionManager = null
    TransactionDefinition txDef = null
    TransactionStatus status = null
    try {
        transactionManager = (PlatformTransactionManager) AppContext.getBean(BeanEnum.transactionManager);
        txDef = new DefaultTransactionDefinition(TransactionDefinition.PROPAGATION_REQUIRES_NEW)
        status = transactionManager.getTransaction(txDef)
        jdbcTemplate.execute(
                msgTrackerAuditSql,
                new AbstractLobCreatingPreparedStatementCallback(oracleLobHandler) {
                    protected void setValues(PreparedStatement ps, LobCreator lobCreator) throws SQLException {
                        ps.setLong(1, commId);
                        ps.setString(2, userId);
                        ps.setString(3, "TEST_SCRIPT" + "_" + userId);
                        ps.setString(4, target);
                        ps.setString(5, "ASYNC");
                        lobCreator.setClobAsString(ps, 6, message);
                        ps.setString(7, ctx.get("eventType",""));
                        ps.setTimestamp(8, new Timestamp(System.currentTimeMillis()));
                    }
                }
            );

        transactionManager.commit(status)

    } catch (RuntimeException e) {
        transactionManager.rollback(status)
        throw e;
    }
}

再次读取错误

没有方法签名:static com.wipro.core.common.BaseSpec.auditRequest()适用于参数类型:(java.lang.String,java.lang.String,java.lang.String,java.util.LinkedHashMap)值:[35796698,…]可能的解决方案:auditRequest(java.lang.Long,java.lang.String,java.lang.String,java.util.Map)


这告诉你,你试图调用
auditRequest
方法,第一个参数是
String
,当方法签名指定第一个参数应该是
Long

时,有时看到人们不浏览互联网会令人沮丧。然而,在这种情况下,OP甚至没有读到or分析错误消息,令人惊讶。