我尝试使用 Acceleo 在模板中调用一些 java 代码。那里给出的代码:http ://wiki.eclipse.org/Acceleo/FAQ#How_to_use_a_Java_service_in_Acceleo工作正常,但我的代码没有,我没有发现任何错误。
这是我的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]
我还尝试通过 return 'foobar' 替换返回函数,但它也不起作用。生成时我没有任何消息:该文件仅包含“结果:”。我还检查了我使用的路径和文件名。
有什么想法可以解决这个问题吗?
编辑:好的!我终于找到了答案......这真的很愚蠢:在查询代码中您不必输入参数名称,只需输入它们的类型,所以:
[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}) /]
它有效......很高兴知道=)