如何在WildFly中设置java:comp / DefaultDataSource?

时间:2015-06-29 05:47:06

标签: java jdbc wildfly-8

根据JEE规范,应该使用java:comp/DefaultDataSource向应用程序提供默认数据源。开箱即用的WildFly将根据规范提供该数据源。

我似乎无法找到的方法是在不更改应用程序本身的java:comp/DefaultDataSource映射的情况下将值更改为指向其他位置。

"容器" - > " JPA子系统"我已尝试设置默认数据源,但连接仍然是 java:jboss/datasources/ExampleDS

@Resource(name = "somedatasource", lookup = "java:comp/DefaultDataSource")
private DataSource ds;

有一点需要注意,我没有在应用程序中使用JPA,我只想获取默认数据源并使用原始JDBC调用,因为我正在处理大量LOB数据和动态表名并且它只能在原始JDBC上使用。

我测试的方式是

System.out.println(ds.getConnection().getMetaData().getURL());

产生jdbc:h2:mem:test

1 个答案:

答案 0 :(得分:1)

在您喜欢的编辑器中打开您的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的物理数据源名称。