总之,在托管bean上的WebLogic12c上,JSF不会调用带@PostConstruct的方法。
我有一个非常基本的应用程序。
使用的技术: 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是create,(在普通构造函数中输入) 但不要使用PostConstruct输入(忽略,不调用)方法。
WebLogic显示的文本:Enter to Construct 预期文本,但不显示在WL中:输入到构造 - 输入到PostConstruct
该应用程序已部署在其他应用程序服务器上:
并显示预期结果。
问题只发生在JSF托管bean(请求,会话,视图,应用程序)上,如果使用CDI,则调用PostConstruct。但我需要使用JSF ViewScoped注释。
有人有想法吗?
答案 0 :(得分:2)
嗯,问题解决了。
这是一个报告的错误,并且已经有补丁。
Bug:13703600
补丁:SU补丁[UXPH]:WLS12C - 未在JSF APP中的@MANAGEDBEAN BECE上调用POSTCONSTRUCT。
我应用了补丁,问题得到解决......