2

要約すると、@PostConstruct を使用したメソッドは、マネージド Bean 上の WebLogic12c 上の JSF によって呼び出されません。

私は非常に基本的なアプリケーションを持っています。

使用技術: 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>

Managed Bean が JSF のインスタンスの場合、Managed 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 APP の @MANAGEDBEAN Bean で POSTCONSTRUCT が呼び出されない。

私はパッチを適用し、問題は修正されました...

于 2012-03-29T16:44:38.607 に答える