我尝试使用Acceleo调用模板中的一些java代码。 在那里给出的代码:http://wiki.eclipse.org/Acceleo/FAQ#How_to_use_a_Java_service_in_Acceleo工作正常,但我的代码没有,我没有发现任何错误。用Acceleo调用Java代码
这里我的Java功能:
public String test(softo.Activite activity) {
return activity.getModXName();
}
和模板代码:
[query public getTest(a : Activite) : String = invoke('org.eclipse.acceleo.softogen.files.Utility','test(softo.Activite activity)', Sequence{a}) /]
[template public createOperationUrl(activity : AccessibleActivite) ]
Result : [getTest(activity)/]
[/template]
我也试图通过回归“foobar的”来代替返回功能,但它也不起作用。 我生成时没有任何消息:文件只包含'Result:'。 我也检查过我使用的路径和文件名。
任何想法来解决这个问题?
编辑: 好吧!我终于找到了答案......这真是愚蠢:在查询的代码,你不必把参数名称,只有他们的类型,所以:
[query public getTest(a : Activite) : String = invoke('org.eclipse.acceleo.softogen.files.Utility','test(softo.Activite activity)', Sequence{a}) /]
变成了:
[query public getTest(a : Activite) : String = invoke('org.eclipse.acceleo.softogen.files.Utility','test(softo.Activite)', Sequence{a}) /]
和它的工作原理......很高兴知道=)
我没有看到这两个查询之间的区别......他们看起来一样。我和你有同样的问题,你是怎么解决的?谢谢 – DeLac