【问题标题】:JClouds-Chef BootstrapConfig Builder MissingMethodExceptionJClouds-Chef BootstrapConfig Builder MissingMethodException
【发布时间】:2014-07-21 13:15:14
【问题描述】:

请注意:虽然这个问题涉及JClouds-Chef库和这里的Groovy,但我认为这是一个Java API问题。

这里是 JClouds-Chef 1.7.3:

List<String> runlist = new RunListBuilder().addRole("typicalapp").build();

ArrayList<String> runList2 = new ArrayList<String>();
for(String item : runlist) {
    runList2.add(item);
}

System.out.println("runList2 is of type: " + runList2.getClass().getName());

BootstrapConfig bootstrapConfig = BootstrapConfig.builder().runlist(runList2).build();

产生以下输出/异常:

runList2 is of type: java.util.ArrayList
Exception in thread "main" groovy.lang.MissingMethodException: No signature of method: org.jclouds.chef.domain.BootstrapConfig$Builder.runlist() is applicable for argument types: (java.util.ArrayList) values: [[role[typicalapp]]]
Possible solutions: runList(java.lang.Iterable), build(), split(groovy.lang.Closure)
    at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:55)
    at org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(PojoMetaClassSite.java:46)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
    at net.myuser.chef.test.ChefPlugin.provision(ChefPlugin.groovy:71)
    at net.myuser.chef.test.ChefPlugin$provision.call(Unknown Source)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112)
    at net.myuser.chef.test.ChefPlugin.main(ChefPlugin.groovy:27)

我很确定这个版本的BootstrapConfig#Builder is here 的代码。据我所知,ArrayList 扩展了Iterable,所以我看不到这里发生了什么。

【问题讨论】:

    标签: java groovy chef-infra jclouds


    【解决方案1】:

    您使用的是runlist 而不是runList

    【讨论】:

    • 感谢@Vartlok (+1) - “诅咒你,Groovy!
    猜你喜欢
    • 1970-01-01
    • 2014-09-10
    • 2014-09-12
    • 1970-01-01
    • 1970-01-01
    • 2015-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多