[jboss-jira] [JBoss JIRA] (WFLY-13360) Log WARN when EJB does not implement Business interface and is not compliant with EJB 3.2 spec

Brian Stansberry (Jira) issues at jboss.org
Fri Apr 17 15:50:08 EDT 2020


     [ https://issues.redhat.com/browse/WFLY-13360?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Brian Stansberry updated WFLY-13360:
------------------------------------
    Description: 
>From the specification every business interface need to be declared explicitly as a business interface by @Remote or @Local annotation or deployment descriptor.

{code}
EJB 3.2 specification

4.9.7 Session Bean’s Business Interface

- The bean class must implement the interface or the interface must be designated as a local or remote business interface of the bean by means of the Local or Remote annotation or in the deployment descriptor.
- All business interfaces must be explicitly designated as such if any of the following is true:
 - the bean exposes a no-interface view
 - any interface of the bean class is explicitly designated as a business interface of the bean by either of the following means:
  - using the Local or Remote annotation with a non-empty value on the bean class
  - using the Local or Remote annotation on the interface
  - in the deployment descriptor
{code}

If EJB A implements I and EJB B extends A , EJB B must also declare it implements I in order to be spec compliant:

{code}
public interface I {...}
 
@Stateless
public class A implements I {...}
 
@Stateless
public class B extends A {...}
{code}

  was:
>From the specification every business interface need to be declared explicitly as a business interface by @Remote or @Local annotation or deployment descriptor.

EJB 3.2 specification

4.9.7 Session Bean’s Business Interface

- The bean class must implement the interface or the interface must be designated as a local or remote business interface of the bean by means of the Local or Remote annotation or in the deployment descriptor.
- All business interfaces must be explicitly designated as such if any of the following is true:
 - the bean exposes a no-interface view
 - any interface of the bean class is explicitly designated as a business interface of the bean by either of the following means:
  - using the Local or Remote annotation with a non-empty value on the bean class
  - using the Local or Remote annotation on the interface
  - in the deployment descriptor
If EJB A implements I and EJB B extends A , EJB B must also declare it implements I in order to be spec compliant:

public interface I {...}
 
@Stateless
public class A implements I {...}
 
@Stateless
public class B extends A {...}



> Log WARN when EJB does not implement Business interface and is not compliant with EJB 3.2 spec
> ----------------------------------------------------------------------------------------------
>
>                 Key: WFLY-13360
>                 URL: https://issues.redhat.com/browse/WFLY-13360
>             Project: WildFly
>          Issue Type: Bug
>          Components: EJB
>            Reporter: Panagiotis Sotiropoulos
>            Assignee: Panagiotis Sotiropoulos
>            Priority: Major
>
> From the specification every business interface need to be declared explicitly as a business interface by @Remote or @Local annotation or deployment descriptor.
> {code}
> EJB 3.2 specification
> 4.9.7 Session Bean’s Business Interface
> - The bean class must implement the interface or the interface must be designated as a local or remote business interface of the bean by means of the Local or Remote annotation or in the deployment descriptor.
> - All business interfaces must be explicitly designated as such if any of the following is true:
>  - the bean exposes a no-interface view
>  - any interface of the bean class is explicitly designated as a business interface of the bean by either of the following means:
>   - using the Local or Remote annotation with a non-empty value on the bean class
>   - using the Local or Remote annotation on the interface
>   - in the deployment descriptor
> {code}
> If EJB A implements I and EJB B extends A , EJB B must also declare it implements I in order to be spec compliant:
> {code}
> public interface I {...}
>  
> @Stateless
> public class A implements I {...}
>  
> @Stateless
> public class B extends A {...}
> {code}



--
This message was sent by Atlassian Jira
(v7.13.8#713008)



More information about the jboss-jira mailing list