Я разработал некоторые веб-службы, которые я бы хотел использовать в моем приложении grails. Эти службы могут быть вызваны с использованием протоколов Get или POST.Grails: невозможно решить класс groovyx.net.http.HTTPBuilder
Я видел, что для этого нужно использовать объект-конструктор HTTP.
Это мой код:
import groovyx.net.http.HTTPBuilder
import groovyx.net.http.ContentType
import groovyx.net.http.Method
import groovyx.net.http.RESTClient
import groovyx.net.http.HttpResponseDecorator
def http = new HTTPBuilder('http://localhost:8086')
http.request(GET, JSON) {
uri.path = '/RegistrationService/webresources/users/isRegistered'
uri.query = [ login:'aa', password: 'bb' ]
response.success = { resp, xml ->
def xmlResult = xml
}
}
У меня есть проблема в том, что в Netbeans у меня есть ошибки для каждого импорта: Невозможно разрешить класс groovyx.net.http.HTTPBuilder Невозможно разрешить класс groovyx .net.http.ContentType ...
Однако я попытался запустить приложение, и это ошибка, когда я запускаю мой код:
| Error 2013-02-25 23:33:32,596 [http-bio-8080-exec-3] ERROR errors.GrailsExceptionResolver - MissingPropertyException occurred when processing request: [POST] /WordGame/user/authenticate
No such property: uriPath for class: groovyx.net.http.HTTPBuilder$RequestConfigDelegate. Stacktrace follows:
Message: No such property: uriPath for class: groovyx.net.http.HTTPBuilder$RequestConfigDelegate
Line | Method
->> 21 | doCall in wordgame.UserController$_closure2_closure4
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 425 | doRequest in groovyx.net.http.HTTPBuilder
| 359 | request . in ''
| 19 | doCall in wordgame.UserController$_closure2
| 195 | doFilter in grails.plugin.cache.web.filter.PageFragmentCachingFilter
| 63 | doFilter in grails.plugin.cache.web.filter.AbstractFilter
| 1110 | runWorker in java.util.concurrent.ThreadPoolExecutor
| 603 | run in java.util.concurrent.ThreadPoolExecutor$Worker
^ 722 | run . . . in java.lang.Thread
Я установил плагин остального, используя команду: grails install-plugin rest И я уже пытался установить его с помощью интерфейса netbeans, и он говорит мне, что он правильно установлен.
Я видел на некоторых форумах, что мне нужно было зависимостями в файле BuildConfig.groovy подобное:
dependencies {
runtime('org.codehaus.groovy.modules.http-builder:http-builder:0.5.1') {
excludes 'xalan'
excludes 'xml-apis'
excludes 'groovy'
}
}
Но это не решает проблему.
Для информации я использую netbeans 7.2.1 и Grails 2.2.0.
Что-то не так с моим кодом или есть более простой способ запросить веб-сервис?
Заранее спасибо.
Вы попробовали 'grails refresh-dependencies' и' grails clean' после того, как вы установили плагин? Я как-то пробовал это сам, и все было запущено и после того, как я установил плагин 'rest' (кстати, это« лучшая »практика, чтобы объявлять плагины в файле BuildConfig.groovy, вместо того, чтобы устанавливать их через командную строку и имеют зависимости от плагина, написанные в файле 'application.properties' :)). – herom
Я попытался выполнить зависания на графиках и грабли, но ошибка все еще здесь. Я не объявлял плагин в BuildConfig.но я не знаком с Grails, и я не знаю, как это сделать. – Chewbye
Вы не должны использовать 'grails install-plugin' в эти дни, вместо этого вы должны поместить зависимость (' compile ": rest: 0.7" ') в разделе' plugins' вашего 'BuildConfig.groovy' –