2012-07-19 41 views
1

我正在尝试将Acceleo从BPEL转换为Java。 我做了2或3个教程,都涉及使用UML输入模型,但我想我理解我应该如何处理bpel模型及其bpel.ecore元模型。Acceleo首先将BPEL文件转换为Java类

虽然,我在运行一个非常简单的转换时遇到问题,该转换应该只是生成一个带有BPEL流程文件名称的java文件。

这里是我的Acceleo generate.mtl文件:

[comment encoding = UTF-8 /] 
[module generate('http:///org/eclipse/bpel/model/bpel.ecore')] 

[template public generateElement(aProcess : Process)] 
[comment @main /] 
[file (aProcess.name, false, 'UTF-8')] 
[/file] 
[/template] 

,在这里输入.bpel文件(只是它的一部分):

<!-- BPEL_sayHelloProcess BPEL Process [Generated by the Eclipse BPEL Designer] --> 
<!-- Date: Wed Jul 18 11:00:50 CEST 2012 --> 
<bpel:process name="BPEL_sayHelloProcess" 
     targetNamespace="http://bpeltojava.uni" 
     suppressJoinFailure="yes" 
.... 
.... 
</bpel:process> 

这里是我的错误:

代无法生成任何文件,因为没有模型 元素至少匹配类型您主要模板中的第一个参数 。该问题可能是由于您的元模型注册时出现问题导致的,请参阅您的生成器的Java启动程序中名为 “registerPackages”的方法。它可能是 也来自用作 入门点的模板中缺少的[comment @ main /]。

我使用Eclipse建模朱诺4.2和3.3.0 Acceleo 谢谢:-)

回答

0

看来我发现了这个问题。

我下载并安装了Eclipse Indigo Modeling 3.7.2,从更新站点添加了Acceleo 3.3插件,并且BPEL插件版本1.0和Acceleo转换立即生效,没有特别的事情要做,我根本就没有得到错误了。

我认为这个问题依赖于,因为我已经在这里经历了http://www.eclipse.org/forums/index.php/m/895663/#msg_895663,同时在Eclipse Juno和BPEL插件中对BPEL进行了一些教程。

希望这将帮助其他人遇到同样的麻烦

0

这个错误通常出现在定义上的目标类型的“主”模板,你的模型不要没有任何事例。在本例中,您的主要模板:

[template public generateElement(aProcess : Process)] 
[comment @main /] 

定义为将“Process”元素作为输入。您需要确保您的输入模型确实包含此类型的元素。

还请确保正确注册您的软件包和资源工厂(可选,可能没有任何BPEL文件)。这是在主模块旁边生成的Java类中完成的:查看“registerPackage”和“registerFactories”的示例实现。您的BPEL注册应该接近我们提供的样本。

+0

Kellindil喜 - 关于输入元素,是的,我确实有我的文件中的“过程”的元素: AxA 2012-07-23 11:29:47

+0

公共无效registerPackages(ResourceSet资源集)和 公共无效registerResourceFactories(ResourceSet资源集) 只有在独立发电机的情况下,对吗? 无论如何,我正在重新检查注册样本 – AxA 2012-07-23 11:35:36

+0

在独立的情况下,是的...通常。在标称情况下,Eclipse应该为你处理这些问题,但有些包需要特殊的集成,只能通过他们自己的编辑来完成。我不太了解BPEL是否属于这些情况之一。 – Kellindil 2012-07-24 07:03:04