当前位置: 首页 > 知识库问答 >
问题:

E4不会调用我的@PostConstruct方法

雍飞雨
2023-03-14

我在将E3 RCP应用程序迁移到E4时遇到了问题。我有三个部分。2.样品含量为Lars Vogel(http://www.vogella.com/tutorials/EclipseRCP/article.html#plugin_creatinge4“使用SWT电源小部件”)进行测试,并将其与我的部件进行比较。

长话短说(er):应该创建视图内容的方法(标记为@PostConstruct)不会被调用,但SampleContent的@PostConstruct会被调用。这有什么原因?调用MyView的构造函数。

我的观点结构如下:

Many Imports

public class MyView1 implements IRefreshableView, ISomeListener {

a lot of fields, some are injected...

public MyView1()  {
        reference to the Activator-Class to get some item.
    }

@PostConstruct
public void createControls(Composite parent) {
        createViewToolbar();``

and much more Part Creation stuff that won´t be invoked...

}

much more methods
@Focus
    public void setFocus() {
        if (treeViewer.getTree().isVisible()) {
            treeViewer.getTree().setFocus();
        } else {
            mainForm.setFocus();
        }
    }

}

new class definition in the same file. 

END

很抱歉没有发布完整的代码,大约有1000行:/

我在Win7上使用Mars 4.5.1

共有1个答案

欧阳俊逸
2023-03-14

无法运行后构造的一个原因是直接注入代码无法找到在字段中注入的对象(或注入的构造函数)。如果发生这种情况,喷油器只会记录错误并停止。

错误记录在'。日志“工作区中的文件”。元数据的目录。

 类似资料:
  • 问题内容: SampleBean: 和配置文件是这样的: 而且我没有在bean标记上设置default-init-method属性。 任何机构都可以说出为什么@PostConstruct方法没有被调用的原因。 问题答案: 你需要(或)启用处理功能。

  • 问题内容: 我正在编写一个JAX-RS库(不是应用程序)。 我有: 和测试类: 我正在使用jersey测试框架v2.17进行测试 我发现只有会被调用,而祖先中定义的那些方法不会被调用。注意,在类中声明的field()已正确注入。 这正常吗?我该怎么办? 结论 我对嵌入式Glassfish进行了测试,发现正如Antonin Stefanutti所指出的那样,这些回调方法按预期顺序被调用。 问题答案:

  • 问题内容: 我有一个@ViewScopeManagedBean和一个@PostConstruct初始化方法。创建新实例时会调用此方法,但每次ajax调用时也会调用此方法。为什么会这样呢? 在AJAX调用中,将调用并执行init-Method,但看不到任何更改。例如,如果我更改init- Method中的属性,则该属性仅在实例化时可见,而对于AJAX调用则不可见。对于AJAX调用,值更改在@View

  • 在helper类的静态方法中调用时,它会抛出一个NPE。我所做的是嘲笑MarkupMaker和它的返回值(一个Markup实例)。最后,我希望调用标记实例的。无论我做什么-的调用都是抛出一个NPE。我找不到任何文档告诉我如何在spock中详细模拟方法调用值。 编辑:我添加了示例。的调用返回null,即使我在spock测试中对其进行了嘲弄。 test.groovy java(执行模拟对象的方法) j

  • 问题内容: 我想在应用程序开始时阅读文本数据装置(CSV文件),并将其放入数据库中。 为此,我创建了带有初始化方法(@PostConstruct批注)的PopulationService。 我也希望它们在单个事务中执行,因此我在同一方法上添加了@Transactional。 然而,@Transactional似乎被忽略:该交易启动/停止我的低水平DAO方法。 那我需要手动管理交易吗? 问题答案:

  • 问题内容: 我正在使用带有GlassFish 3.0的JSF 2.0。 我有以下托管豆: 从 overview.xhtml 文件中,我从OverviewController中调用不同的属性或方法。 一切正常,但问题出在日志文件上: 如您所见,init()方法在同一请求中被两次调用,无缘无故。据我所知,每个带有 PostConstruct 注释的方法都会被调用一次。我错了吗? 编辑: 页面上未使用A