[jboss-jira] [JBoss JIRA] (WFLY-9585) Wildfly 10 ignores jboss-ejb3.xml resource-ref lookup-name

Shing Lam (JIRA) issues at jboss.org
Tue Dec 12 03:12:00 EST 2017


    [ https://issues.jboss.org/browse/WFLY-9585?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13504245#comment-13504245 ] 

Shing Lam edited comment on WFLY-9585 at 12/12/17 3:11 AM:
-----------------------------------------------------------

I have trimmed down the essential minimum of our project to illustrate the issue. Please use the ear (27 kB) and source code (jboss-lookup.zip 42 kB), the older ones are obsolete.

we have a datasource to standalone.xml 

 {{               <datasource jta="true" jndi-name="java:jboss/jdbc/RMDataSource" pool-name="RMDataSource" enabled="true" use-ccm="false">
                    <connection-url>jdbc:mysql://host:3306/schema?useUnicode=true&amp;amp;characterEncoding=utf8</connection-url>
                    <driver>com.mysql</driver>
                    <security>
                        <security-domain>encrypted-mysqlds-rm_uat</security-domain>
                    </security>
                    <validation>
                        <validate-on-match>false</validate-on-match>
                        <background-validation>false</background-validation>
                    </validation>
                    <statement>
                        <share-prepared-statements>false</share-prepared-statements>
                    </statement>
                </datasource>}}

If you deploy the ear to Wildfly-10, and point the broswer to http://localhost:8080/lookup/, and click the "get Connection Class", you'll see "com.mysql.jdbc.JDBC4Connection".
For Wildfly-10.1,if  the default datasource is set to java:jboss/jdbc/RMDataSource, you'll get com.mysql.jdbc.JDBC4Connection.

           <default-bindings context-service="java:jboss/ee/concurrency/context/default" datasource="java:jboss/jdbc/RMDataSource" jms-connection-factory="java:/JmsXA" managed-executor-service="java:jboss/ee/concurrency/executor/default" managed-scheduled-executor-service="java:jboss/ee/concurrency/scheduler/default" managed-thread-factory="java:jboss/ee/concurrency/factory/default"/>

if  default datasource is set to java:jboss/datasources/ExampleDS, you'll get org.h2.jdbc.JdbcConnection.

standalone.xml

{{           <default-bindings context-service="java:jboss/ee/concurrency/context/default" datasource="java:jboss/datasources/ExampleDS" jms-connection-factory="java:/JmsXA" managed-executor-service="java:jboss/ee/concurrency/executor/default" managed-scheduled-executor-service="java:jboss/ee/concurrency/scheduler/default" managed-thread-factory="java:jboss/ee/concurrency/factory/default"/>}}

In JBoss EAP 6.4, you always get com.mysql.jdbc.JDBC4Connection. 





was (Author: lam_shing):
I have trimmed down the essential minimum of our project to illustrate the issue.

we have a datasource to standalone.xml 

 {{               <datasource jta="true" jndi-name="java:jboss/jdbc/RMDataSource" pool-name="RMDataSource" enabled="true" use-ccm="false">
                    <connection-url>jdbc:mysql://host:3306/schema?useUnicode=true&amp;amp;characterEncoding=utf8</connection-url>
                    <driver>com.mysql</driver>
                    <security>
                        <security-domain>encrypted-mysqlds-rm_uat</security-domain>
                    </security>
                    <validation>
                        <validate-on-match>false</validate-on-match>
                        <background-validation>false</background-validation>
                    </validation>
                    <statement>
                        <share-prepared-statements>false</share-prepared-statements>
                    </statement>
                </datasource>}}

If you deploy the ear to Wildfly-10, and point the broswer to http://localhost:8080/lookup/, and click the "get Connection Class", you'll see "com.mysql.jdbc.JDBC4Connection".
For Wildfly-10.1,if  the default datasource is set to java:jboss/jdbc/RMDataSource, you'll get com.mysql.jdbc.JDBC4Connection.

           <default-bindings context-service="java:jboss/ee/concurrency/context/default" datasource="java:jboss/jdbc/RMDataSource" jms-connection-factory="java:/JmsXA" managed-executor-service="java:jboss/ee/concurrency/executor/default" managed-scheduled-executor-service="java:jboss/ee/concurrency/scheduler/default" managed-thread-factory="java:jboss/ee/concurrency/factory/default"/>

if  default datasource is set to java:jboss/datasources/ExampleDS, you'll get org.h2.jdbc.JdbcConnection.

standalone.xml

{{           <default-bindings context-service="java:jboss/ee/concurrency/context/default" datasource="java:jboss/datasources/ExampleDS" jms-connection-factory="java:/JmsXA" managed-executor-service="java:jboss/ee/concurrency/executor/default" managed-scheduled-executor-service="java:jboss/ee/concurrency/scheduler/default" managed-thread-factory="java:jboss/ee/concurrency/factory/default"/>}}

In JBoss EAP 6.4, you always get com.mysql.jdbc.JDBC4Connection. 




> Wildfly 10 ignores jboss-ejb3.xml resource-ref lookup-name
> ----------------------------------------------------------
>
>                 Key: WFLY-9585
>                 URL: https://issues.jboss.org/browse/WFLY-9585
>             Project: WildFly
>          Issue Type: Bug
>          Components: EJB
>    Affects Versions: 10.1.0.Final
>         Environment: Wilfly-10.1.0.Final with jdk-1.8.0_31 under Red Hat Enterprise Linux Server release 5.11 (Tikanga)
>            Reporter: Shing Lam
>            Assignee: Tomasz Adamski
>              Labels: Wildfly-10.0.0.Final, datasource, default, jboss-ejb3.xml, lookup-name, resource-ref
>         Attachments: jBossLookup-ear-0.0.1-SNAPSHOT.ear, jBossLookup-ear-0.0.1-SNAPSHOT.ear, jBosslookup.zip, jboss-lookup.zip
>
>
> We have a ear that use a datasource that is injected. The application runs normally in Jboss EAP 6.4, with the correct datasource being used.  But when deployed to Wildfly-10.1.0_Final, instead of the datasource specified in the jboss-ejb3.xml, the default datasource is alway injected.
> We have in the ejb-jar.xml
> {code:xml}
>   <enterprise-beans>
>     <session>
>         <ejb-name>BackgroundRecoverySessionEJB</ejb-name>
>         <resource-ref>
>             <res-ref-name>jdbc/RMDataSource</res-ref-name>
>             <res-type>javax.sql.DataSource</res-type>
>             <res-auth>Container</res-auth>
>         </resource-ref>
>         <persistence-context-ref>
>             <persistence-context-ref-name>persistence/RMEntityManager</persistence-context-ref-name>
>         </persistence-context-ref>
>     </session>
> {code}
> and in jboss-ejb3.xml
> {code:xml}
>   <jboss:enterprise-beans>
>     <jboss:ejb>
>         <ejb-name>BackgroundRecoverySessionEJB</ejb-name>
>         <resource-ref>
>             <res-ref-name>jdbc/RMDataSource</res-ref-name>
>             <res-type>javax.sql.DataSource</res-type>
>             <lookup-name>java:jboss/jdbc/RMDataSource</lookup-name>
>         </resource-ref>
>     </jboss:ejb>
> {code}
> the datasource java:jboss/jdbc/RMDataSource got injected into the EJB under JBoss EAP 6.4.
> But in WildFly 10.1, the default datasource java:jboss/datasources/ExampleDS was injected, causing "org.h2.jdbc.JdbcSQLException: Table "XXX" not found;"
> If we set the default datasource to java:jboss/jdbc/RMDataSource, java:jboss/jdbc/RMDataSource jot injected into the EJB.
> Seems like the jboss-ejb3.xml has no effect on WildFly 10.1, the default datasource is always used.



--
This message was sent by Atlassian JIRA
(v7.5.0#75005)


More information about the jboss-jira mailing list