[
https://issues.jboss.org/browse/WFLY-9585?page=com.atlassian.jira.plugin....
]
Shing Lam edited comment on WFLY-9585 at 12/12/17 3:13 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 41 kB), the older ones are
obsolete.
we have a datasource to standalone.xml
{code: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;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>
{code}
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.
{code:xml}
<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"/>
{code}
if default datasource is set to java:jboss/datasources/ExampleDS, you'll get
org.h2.jdbc.JdbcConnection.
standalone.xml
{code: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"/>
{code}
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. Please
use the ear (27 kB) and source code (jboss-lookup.zip 41 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;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)