1

溶接ウィケットに問題があります。抽象クラスから継承する EJB を @Inject するときに、抽象クラスからメソッドを呼び出そうとすると、ejb-ref エラーが発生します。ただし、具象クラスからメソッドを呼び出すと、完全に機能します。メソッドをオーバーライドして呼び出すことができ、オーバーライドされたメソッドを抽象クラスに委譲することができ (オーバーライドされたメソッドが super.method() を呼び出す)、それが機能します。抽象クラスに対して何らかの構成を行う必要がありますか?

ありがとう。

4

1 に答える 1

1

これは私の Seam での経験に基づく推測です。Weld は、Bean をラップするプロキシを注入します。プロキシはパブリック メソッドのみをインターセプトし、それらを基になる Bean (この場合は EJB) に委任します。プロキシで保護されたメソッドを呼び出すか、同じパッケージ内のクラスからパッケージ プライベート メソッドを呼び出すと、そのメソッドはインターセプトされず、プロキシで直接呼び出され、エラーが発生します。話を短くするために、パブリック メソッドのみを呼び出すか、インターフェイスによってすべての依存関係を元に戻し、それを注入します。

于 2010-08-04T06:17:58.440 に答える