Bonjour,

Je suis devant un problème sur lequel je suis un peu à court d'idée.
En fait, je déploie un ear contenant 1 module EJB.

Dans ce module EJB, j'ai 2 beans, et ces 2 beans implémentent la même interface.

Le problème c'est que ça déploie les 2 jndi name, mais lorsqu'on appelle l'un ou l'autre, on tombe toujours sur le même bean.

Apparemment, weblogic va mapper sur le type de l'interface.

Je trouve que ça n'a aucun sens de créer 1 ear par ejb, surtout qu'il n'y a que la class du bean qui est différente (en fait meme pas, juste les descripteurs de déploiement).

Y a-t-il une solution à ceci?

Mes descripteurs de déploiement:

ejb-jar
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
 
<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd" version="3.0">
    <enterprise-beans>
        <session>
            <description>ejb</description>
            <ejb-name>CougarBean</ejb-name>
            <env-entry>
                <env-entry-name>ejb/BeanFactoryPath</env-entry-name>
                <env-entry-type>java.lang.String</env-entry-type>
                <env-entry-value>/cougar-context.xml</env-entry-value>
            </env-entry>
            <env-entry>
                <env-entry-name>bean/SavService</env-entry-name>
                <env-entry-type>java.lang.String</env-entry-type>
                <env-entry-value>savService</env-entry-value>
            </env-entry>
            <env-entry>
                <description>schema name</description>
                <env-entry-name>db/CougarPLSQLSchemaName</env-entry-name>
                <env-entry-type>java.lang.String</env-entry-type>
                <env-entry-value>COUGAR</env-entry-value>
            </env-entry>
            <resource-ref>
                <description>Link to the database.</description>
                <res-ref-name>jdbc/cougar</res-ref-name>
                <res-type>javax.sql.DataSource</res-type>
                <res-auth>Container</res-auth>
            </resource-ref>
        </session>
        <session>
            <description>ejb.</description>
            <ejb-name>CougarV2Bean</ejb-name>
            <env-entry>
                <env-entry-name>ejb/BeanFactoryPath</env-entry-name>
                <env-entry-type>java.lang.String</env-entry-type>
                <env-entry-value>/cougar-context.xml</env-entry-value>
            </env-entry>
            <env-entry>
                <env-entry-name>bean/SavService</env-entry-name>
                <env-entry-type>java.lang.String</env-entry-type>
                <env-entry-value>savService</env-entry-value>
            </env-entry>
            <env-entry>
                <description>schema name</description>
                <env-entry-name>db/CougarPLSQLSchemaName</env-entry-name>
                <env-entry-type>java.lang.String</env-entry-type>
                <env-entry-value>COUGARV2</env-entry-value>
            </env-entry>
            <resource-ref>
                <description>Link to the database.</description>
                <res-ref-name>jdbc/coughar</res-ref-name>
                <res-type>javax.sql.DataSource</res-type>
                <res-auth>Container</res-auth>
            </resource-ref>
        </session>
    </enterprise-beans>
</ejb-jar>
weblogic-ejb-jar
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 
<?xml version="1.0" encoding="ISO-8859-1"?>
<weblogic-ejb-jar xmlns="http://www.bea.com/ns/weblogic/weblogic-ejb-jar" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-ejb-jar http://www.bea.com/ns/weblogic/weblogic-ejb-jar/1.0/weblogic-ejb-jar.xsd">
    <!--weblogic-version:10.3.0-->
    <weblogic-enterprise-bean>
        <ejb-name>CougarBean</ejb-name>
        <stateless-session-descriptor>
            <pool>
                <initial-beans-in-free-pool>5</initial-beans-in-free-pool>
            </pool>
            <business-interface-jndi-name-map>
                <business-remote>service.SavService</business-remote>
                <jndi-name>ejb/sav/cougar/1/3/SavService</jndi-name>
            </business-interface-jndi-name-map>
        </stateless-session-descriptor>
        <!-- reference-descriptor> -->
        <resource-description>
            <res-ref-name>jdbc/cougar</res-ref-name>
            <jndi-name>jdbc.cougar</jndi-name>
        </resource-description>
        <enable-call-by-reference>true</enable-call-by-reference>
        <jndi-name>ejb/sav/cougar/1/3/SavService</jndi-name>
    </weblogic-enterprise-bean>
    <weblogic-enterprise-bean>
        <ejb-name>CougarV2Bean</ejb-name>
        <stateless-session-descriptor>
            <pool>
                <initial-beans-in-free-pool>5</initial-beans-in-free-pool>
            </pool>
            <business-interface-jndi-name-map>
                <business-remote>service.SavService</business-remote>
                <jndi-name>ejb/sav/cougarV2/1/3/SavService</jndi-name>
            </business-interface-jndi-name-map>
        </stateless-session-descriptor>
        <!-- reference-descriptor> -->
        <resource-description>
            <res-ref-name>jdbc/cougar</res-ref-name>
            <jndi-name>jdbc.cougar</jndi-name>
        </resource-description>
        <enable-call-by-reference>true</enable-call-by-reference>
        <jndi-name>ejb/sav/cougarV2/1/3/SavService</jndi-name>
    </weblogic-enterprise-bean>
</weblogic-ejb-jar>
Merci d'avance