如何在 WildFly 中设置 java:comp/DefaultDataSource?
How do I set java:comp/DefaultDataSource in WildFly?
根据 JEE 规范,应该为使用 java:comp/DefaultDataSource
的应用程序提供默认数据源。开箱即用的 WildFly 将根据规范提供该数据源。
我似乎找不到一种方法,可以在不更改应用程序本身的 java:comp/DefaultDataSource
映射的情况下将值更改为指向其他地方。
在 "Container" -> "JPA Subsystem" 下有一个我尝试设置的默认数据源,但连接仍然转到
java:jboss/datasources/ExampleDS
@Resource(name = "somedatasource", lookup = "java:comp/DefaultDataSource")
private DataSource ds;
需要注意的一件事,我没有为应用程序使用 JPA,我只是想获取默认数据源并使用原始 JDBC 调用,因为我正在处理大量 LOB 数据和 dynamic table names 而且只有在 raw JDBC.
上才有可能
我测试的方式是
System.out.println(ds.getConnection().getMetaData().getURL());
产生 jdbc:h2:mem:test
在您最喜欢的编辑器中打开您的 standalone.xml,然后在 urn:jboss:domain:ee:2.0
子系统中找到以下行:
<default-bindings
context-service="java:jboss/ee/concurrency/context/default"
datasource="java:jboss/datasources/ExampleDS"
jms-connection-factory="java:jboss/DefaultJMSConnectionFactory"
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"/>
并将 datasource
值设置为您希望映射到的物理数据源名称 java:comp/DefaultDataSource
。
根据 JEE 规范,应该为使用 java:comp/DefaultDataSource
的应用程序提供默认数据源。开箱即用的 WildFly 将根据规范提供该数据源。
我似乎找不到一种方法,可以在不更改应用程序本身的 java:comp/DefaultDataSource
映射的情况下将值更改为指向其他地方。
在 "Container" -> "JPA Subsystem" 下有一个我尝试设置的默认数据源,但连接仍然转到
java:jboss/datasources/ExampleDS
@Resource(name = "somedatasource", lookup = "java:comp/DefaultDataSource")
private DataSource ds;
需要注意的一件事,我没有为应用程序使用 JPA,我只是想获取默认数据源并使用原始 JDBC 调用,因为我正在处理大量 LOB 数据和 dynamic table names 而且只有在 raw JDBC.
上才有可能我测试的方式是
System.out.println(ds.getConnection().getMetaData().getURL());
产生 jdbc:h2:mem:test
在您最喜欢的编辑器中打开您的 standalone.xml,然后在 urn:jboss:domain:ee:2.0
子系统中找到以下行:
<default-bindings
context-service="java:jboss/ee/concurrency/context/default"
datasource="java:jboss/datasources/ExampleDS"
jms-connection-factory="java:jboss/DefaultJMSConnectionFactory"
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"/>
并将 datasource
值设置为您希望映射到的物理数据源名称 java:comp/DefaultDataSource
。