Вы вызываете метод с именем 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"
Надеюсь, это поможет.
Я полагаю что Type[]
аргумент для универсальных параметров типа - т.е. Вы пытались звонить:
SqlMethods.Like<string,string>(...); // note the <string,string>
Попытайтесь передать пустое Type[]
.
Ре редактирования беспорядок (комментарии); моя точка: Вы ничего не должны указывать для Type[]
аргумент. Или пустой массив или пустой указатель сделали бы; например:
var likeExpression = Expression.Call(
typeof(SqlMethods), "Like", null, nameExpression, termExpression);
Можно использовать класс PredicateBuilder от Joseph Albahari и Ben Albahari для создания Вашего где предикат
Ответ следующий:
Expression.Call(Nothing, GetType(System.Data.Linq.SqlClient.SqlMethods).GetMethod("Like", New Type() {GetType(String), GetType(String)}), New Expression() {left, right})