2017-06-11 3 views
0

私は以下の方法があります。メソッドがfinalと宣言された場合、@EJBはnullです。なぜこれはそうですか? finalキーワードを省略したときに動作します。最終的に宣言されたメソッドは、@EJBをnullにします。なぜですか?

@Stateless 
@TransactionManagement(TransactionManagementType.CONTAINER) 
public class TokenService2 
{ 
    @EJB 
    private Configuration configuration; 

    public final void processAuthentication(String authCode) throws FileNotFoundException, IOException 
    { 
     //here configuration is NULL. 
    } 
} 

(構成自体は、シングルトンである)

答えて

2

EJB Beanは、ビジネス・メソッド(クライアントによって呼び出し可能な方法)のために離れてpublicから他のmehod修飾子を好きではありません。この特定のケースはWildflyのバグのように見えますが。 Beanクラスのと java.lang.Object上位を除く任意のスーパークラスのパブリックメソッドのみがかもしれ

:Wildfly 10は、従って、そのEJBコンテナはセッションBeanについては、次の言うEJB 3.2仕様に準拠している必要があり、JavaEE7の準拠していますインタフェースなしのビューを通して呼び出されます。 経由で他のアクセスmodifi-のERSとメソッドの しようと呼び出し無インタフェースビューの参照が にjavax.ejb.EJBException

になる必要がありますので、あなたのビジネスの方法は、とにかく最終的なカントが、あなたのサーバが通知する必要がありますそれについて 。

関連する問題