2

总之,带有@PostConstruct 的方法不是由JSF 在WebLogic12c 上的托管bean 上调用的。

我有一个非常基本的应用程序。

使用的技术:JSF2.0

应用服务器:WebLogic 12c

爪哇

@ManagedBean
@ViewScoped

public class BeanTest implements Serializable {

    private String hola_mundo = "";

    public BeanTest(){
        this.init();
    }

    private void init(){
        hola_mundo +=" Enter to construct - ";
    }


    @PostConstruct
    public void initPostConstruct(){
        hola_mundo +=" Enter to PostConstruct - ";
    }

    public String getHola_mundo() {
        return hola_mundo;
    }

    public void setHola_mundo(String hola_mundo) {
        this.hola_mundo = hola_mundo;
    }
}

XHTML

<h:head>
    <title>Facelet Title</title>
</h:head>
<h:body>
    Test
    <br/>
    #{beanTest.hola_mundo}
</h:body>

当托管 bean 是 JSF 的实例时,创建托管 bean beanTest,(在普通构造函数中输入)但不要使用 PostConstruct 输入(忽略,不调用)方法。

使用 WebLogic 显示的文本:Enter to Construct 预期的文本,但没有使用 WL 显示:Enter to Construct - Enter to PostConstruct

该应用程序已部署在其他应用程序服务器上:

  • 玻璃鱼 3.1.1
  • 玻璃鱼 3.1.2
  • 雄猫 7.0.22

并显示预期的结果。

该问题仅发生在 JSF 托管 bean(请求、会话、视图、应用程序)上,如果使用 CDI,则调用 PostConstruct。但我需要使用 JSF ViewScoped 注释。

有什么想法的人吗?

4

1 回答 1

2

了,问题解决了。

这是一个报告的错误,并且已经有一个补丁。

错误:13703600
补丁:SU 补丁 [UXPH]:WLS12C - 未在 JSF 应用程序中调用 @MANAGEDBEAN Bean 的 POSTCONSTRUCT。

我打了补丁,问题就解决了……

于 2012-03-29T16:44:38.607 回答