总之,带有@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 注释。
有什么想法的人吗?