以编程方式创建零件不在kepler中工作

时间:2013-06-28 07:24:05

标签: java eclipse eclipse-plugin eclipse-juno eclipse-kepler

我正在Juno中创建一个RCP应用程序。

在该应用程序中,我正在以编程方式创建基于PartDescriptor的部分,如下所示。

 MPart part = partService.createPart("discripto.id");
 part.setElementId("element.id");        

它在Eclipse 4.2.2之前完美运行。

当我尝试在Eclipse Kepler中运行时,相同的代码,它不会抛出任何异常视图,就像没有任何控制一样:

enter image description here

任何人都可以告诉我这里缺少的东西。

1 个答案:

答案 0 :(得分:1)

在发布问题后找到答案:

问题:

@PostConstruct带注释的方法未被称为

来自Why isn't my @Inject-able/@PostConstruct methods being injected?

解决方案

注射失败通常有两个原因。

不匹配的注释:确保您的捆绑包使用 Import-Package 与包版本一起提取标准注释而不是 Require-Bundle javax.annotation捆绑包上。

Import-Package: javax.inject;version="1.0.0",javax.annotation; version="1.0.0"

无法解析的注入:注入器尝试解析上下文中的对象。如果无法在上下文中解析对象,并且未将其标记为@Optional,则不会注入该方法。当这种情况发生时,喷射器通常不会记录,因为它是预期的发生。

我的问题是因为第一个问题。