java - 如何设置java :comp/DefaultDataSource in WildFly?

标签 java jdbc wildfly-8

根据 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 数据和动态表名称 em> 而且这只能在原始 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 的物理数据源名称。

关于java - 如何设置java :comp/DefaultDataSource in WildFly?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31108608/

相关文章:

java - 可以从 Java 中该类的枚举中访问类方法吗?

java - 仅包含实时 lucene 索引的目录中的可用磁盘减少

java - 将图像(png)转换为字符串然后加密图像

java - 通过编程访问 USB 电缆引脚排列

java - Spring : previous Line in jdbc template

java - 使用 RolesAllowed 在 Wildfly 中进行 Websocket 身份验证

java.sql.SQLException : Access denied for user 'root' @'localhost' (using password: YES) in spring using mysql

java - Java 中 Postgresql 数据库的编程连接有效性检查

java - JAX RS 中 REST 端点的排序

java - 将 WildFly 应用程序服务器与 NetBeans IDE 结合使用