Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Groovy@Grab-won';不要抱怨_Groovy_Retrofit2 - Fatal编程技术网

Groovy@Grab-won';不要抱怨

Groovy@Grab-won';不要抱怨,groovy,retrofit2,Groovy,Retrofit2,我尝试使用@Grab将一些库添加到一个简单的groovy脚本中。但我无法通过编译步骤,因为似乎有东西试图解析XML,但找不到实现 import retrofit2.Retrofit @Grapes([ @Grab(group = 'com.squareup.retrofit2', module = 'retrofit', version = '2.2.0'), @Grab(group = 'com.squareup.retrofit2', module = 'converter-

我尝试使用@Grab将一些库添加到一个简单的groovy脚本中。但我无法通过编译步骤,因为似乎有东西试图解析XML,但找不到实现

import retrofit2.Retrofit
@Grapes([
    @Grab(group = 'com.squareup.retrofit2', module = 'retrofit', version = '2.2.0'),
    @Grab(group = 'com.squareup.retrofit2', module = 'converter-jackson', version = '2.2.0'),
    @Grab(group = 'com.squareup.okhttp3', module = 'okhttp', version = '3.5.0'),
    @Grab(group = 'org.slf4j', module = 'slf4j-simple', version = '1.7.12')
])

import retrofit2.converter.gson.GsonConverterFactory

def result = new Retrofit.Builder()
    .baseUrl("http://weather.livedoor.com")
    .addConverterFactory(GsonConverterFactory.create())
    .build()
    .create(WeatherService.class)
    .find("400040")

result.execute()

println result.pinpointLocations
在编译期间导致此错误:

Caught: javax.xml.parsers.FactoryConfigurationError: Provider org.apache.xerces.jaxp.SAXParserFactoryImpl not found
javax.xml.parsers.FactoryConfigurationError: Provider org.apache.xerces.jaxp.SAXParserFactoryImpl not found
at javax.xml.parsers.SAXParserFactory.newInstance(Unknown Source)
at org.apache.ivy.core.settings.XmlSettingsParser.doParse(XmlSettingsParser.java:160)
at org.apache.ivy.core.settings.XmlSettingsParser.parse(XmlSettingsParser.java:150)
at org.apache.ivy.core.settings.IvySettings.load(IvySettings.java:393)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:233)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
at groovy.grape.GrapeIvy.<init>(GrapeIvy.groovy:99)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at java.lang.Class.newInstance(Class.java:442)
at groovy.grape.Grape.getInstance(Grape.java:121)
at groovy.grape.Grape.grab(Grape.java:159)
at groovy.grape.GrabAnnotationTransformation.visit(GrabAnnotationTransformation.java:378)
at org.codehaus.groovy.transform.ASTTransformationVisitor$3.call(ASTTransformationVisitor.java:321)
at org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:931)
at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:593)
at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:569)
at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:546)
at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:298)
at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:268)
at groovy.lang.GroovyShell.parseClass(GroovyShell.java:688)
at groovy.lang.GroovyShell.run(GroovyShell.java:517)
at groovy.lang.GroovyShell.run(GroovyShell.java:507)
at groovy.ui.GroovyMain.processOnce(GroovyMain.java:653)
at groovy.ui.GroovyMain.run(GroovyMain.java:384)
at groovy.ui.GroovyMain.process(GroovyMain.java:370)
at groovy.ui.GroovyMain.processArgs(GroovyMain.java:129)
at groovy.ui.GroovyMain.main(GroovyMain.java:109)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.tools.GroovyStarter.rootLoader(GroovyStarter.java:109)
at org.codehaus.groovy.tools.GroovyStarter.main(GroovyStarter.java:131)
catch:javax.xml.parsers.FactoryConfigurationError:Provider org.apache.xerces.jaxp.SAXParserFactoryImpl未找到
javax.xml.parsers.FactoryConfigurationError:未找到提供程序org.apache.xerces.jaxp.SAXParserFactoryImpl
位于javax.xml.parsers.SAXParserFactory.newInstance(未知源)
位于org.apache.ivy.core.settings.XmlSettingsParser.doParse(XmlSettingsParser.java:160)
位于org.apache.ivy.core.settings.XmlSettingsParser.parse(XmlSettingsParser.java:150)
位于org.apache.ivy.core.settings.IvySettings.load(IvySettings.java:393)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:498)
位于org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$pojocachedMethodSiteNounwrapnocerc.invoke(PojoMetaMethodSite.java:233)
位于org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56)
位于org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
位于org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
位于org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
在groovy.grape.Grapevy。(Grapevy.groovy:99)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:423)
位于java.lang.Class.newInstance(Class.java:442)
位于groovy.grape.grape.getInstance(grape.java:121)
在groovy.grape.grape.grab(grape.java:159)
在groovy.grape.GrabAnnotationTransformation.visit(GrabAnnotationTransformation.java:378)
位于org.codehaus.groovy.transform.ASTTransformationVisitor$3.call(ASTTransformationVisitor.java:321)
位于org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:931)
位于org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:593)
位于org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:569)
位于org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:546)
位于groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:298)
位于groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:268)
位于groovy.lang.GroovyShell.parseClass(GroovyShell.java:688)
运行(GroovyShell.java:517)
运行(GroovyShell.java:507)
在groovy.ui.GroovyMain.processOnce(GroovyMain.java:653)
在groovy.ui.GroovyMain.run(GroovyMain.java:384)
位于groovy.ui.GroovyMain.process(GroovyMain.java:370)
位于groovy.ui.GroovyMain.processArgs(GroovyMain.java:129)
位于groovy.ui.GroovyMain.main(GroovyMain.java:109)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:498)
位于org.codehaus.groovy.tools.GroovyStarter.rootLoader(GroovyStarter.java:109)
位于org.codehaus.groovy.tools.GroovyStarter.main(GroovyStarter.java:131)

我不知道你为什么要把Jackson拉进来,然后尝试使用Gson。。。无论如何这很有效

(不得不写我自己的WeatherService,因为你没有指定)

@Grab('com.squareup.reformation2:reformation:2.2.0')
@抓斗('com.squareup.2:converter-gson:2.2.0')
@Grab('com.squareup.okhttp3:okhttp:3.5.0')
2.致电
进口改装2.改装
导入改装2.converter.gson.GsonConverterFactory
导入文件2.http.GET
导入文件2.http.Query
导入groovy.transform*
@托斯特林
类链接{
串链
字符串名
}
类预测响应{
列出精确位置
}
接口气象服务{
@获取('forecast/webservice/json/v1')
调用查找(@Query('city')字符串city)
}
def结果=新改装.Builder()
.baseUrl(“http://weather.livedoor.com")
.addConverterFactory(GsonConverterFactory.create())
.build()
.create(WeatherService.class)
.查找(“400040”)
result=result.execute().body()
result.pinpointLocations.each{
打印它
}
@Grab('com.squareup.retrofit2:retrofit:2.2.0')
@Grab('com.squareup.retrofit2:converter-gson:2.2.0')
@Grab('com.squareup.okhttp3:okhttp:3.5.0')
import retrofit2.Call
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
import retrofit2.http.GET
import retrofit2.http.Query
import groovy.transform.*

@ToString
class Link {
    String link
    String name
}

class ForecastResponse {
    List<Link> pinpointLocations
}

interface WeatherService {
    @GET('forecast/webservice/json/v1')
    Call<ForecastResponse> find(@Query('city') String city)
}

def result = new Retrofit.Builder()
    .baseUrl("http://weather.livedoor.com")
    .addConverterFactory(GsonConverterFactory.create())
    .build()
    .create(WeatherService.class)
    .find("400040")

result = result.execute().body()

result.pinpointLocations.each {
    println it
}