No-Interface viewを使用するSession Beanを開発する際の注意事項を次に示します。
- ローカルビジネスインタフェースを省略したSession Beanのメソッドには,java.rmi.RemoteExceptionを含めないでください。
ただし,javax.ejbパッケージ内のインタフェースを実装したメソッドの場合は,throws節にjava.rmi.RemoteExceptionが含まれていても,エラーにはなりません。
- javax.ejbパッケージ内のインタフェースを実装したSession Beanのメソッドは,ビジネスメソッドとしてみなされません。No-Interface viewを使用する場合は,クライアントからこれらのメソッドを呼び出さないでください。
- Beanクラスやその親クラスのすべてのメソッドでfinalは宣言できません。finalを宣言したメソッドは,No-Interface viewでは呼び出せません。
- Session Beanのメソッドにstaticまたはfinalが宣言されている場合,これらのメソッドはビジネスメソッドとは見なされません。No-Interface viewを使用する場合,クライアントからこれらのメソッドは呼び出さないでください。
- 通常のビジネスインタフェースでは,@AroundInvokeアノテーションを使用すると,ビジネスメソッドの実行がデプロイメントエラーになります。しかし,No-Interface viewを使用する場合は,@AroundInvokeアノテーションをpublicメソッドで使用すると,エラーにはなりません。ビジネスメソッドとして扱われます。
- 標準仕様では,@Removeアノテーションはビジネスメソッドで使用されます。しかし@PreDestroyアノテーションがあわせて設定されているビジネスメソッドで@Removeアノテーションを指定すると,クライアントからメソッドを呼び出したときにjavax.ejb.NoSuchObjectLocalExceptionがスローされます。