根据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
答案 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
的物理数据源名称。