Различие между Выражением. Назвать перегрузки?

Вы вызываете метод с именем restBuilder(), и этот метод не существует. Если вы хотите, чтобы это работало, вам нужно реализовать этот метод и заставить его возвращать что-то, что может иметь дело с вызовом post(String, Closure).

Вы, вероятно, намереваетесь использовать класс RestBuilder. Подробности будут зависеть от того, какую версию Grails вы используете, но вы, вероятно, захотите, что-то вроде этого ...

RestBuilder restBuilder = new RestBuilder()
restBuilder.post('http://localhost:2222/api/microservice/fetchData'){
    header 'authorization', 'fdgtertddfgfdgfffffff'
    accept 'application/json'
    json {
        empId = 1
        name = 'test1'
    }
}

Вам может понадобиться добавить зависимость от grails-datastore-rest-client в ваш build.gradle.

compile "org.grails:grails-datastore-rest-client"

Надеюсь, это поможет.

7
задан Ronald Wildenberg 10 March 2009 в 08:49
поделиться

3 ответа

Я полагаю что Type[] аргумент для универсальных параметров типа - т.е. Вы пытались звонить:

SqlMethods.Like<string,string>(...); // note the <string,string>

Попытайтесь передать пустое Type[].


Ре редактирования беспорядок (комментарии); моя точка: Вы ничего не должны указывать для Type[] аргумент. Или пустой массив или пустой указатель сделали бы; например:

var likeExpression = Expression.Call(
    typeof(SqlMethods), "Like", null, nameExpression, termExpression);
9
ответ дан 7 December 2019 в 03:21
поделиться

Можно использовать класс PredicateBuilder от Joseph Albahari и Ben Albahari для создания Вашего где предикат

0
ответ дан 7 December 2019 в 03:21
поделиться

Ответ следующий:

Expression.Call(Nothing, GetType(System.Data.Linq.SqlClient.SqlMethods).GetMethod("Like", New Type() {GetType(String), GetType(String)}), New Expression() {left, right})
0
ответ дан 7 December 2019 в 03:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: