类似于What to put into jta-data-source of persistence.xml?和How to map jpa datasources in WildFly?
然而,我要求的东西将在所有供应商或至少WildFly,Glassfish/Payara,WebSphere应用服务器经典,WebSphere应用服务器自由,TomEE。我并不是在寻找可以在Java SE单元测试中工作的东西。
到目前为止,我发现java:comp/env/jdbc/xxx可以在WebSphere应用服务器和TomEE中工作。有一个映射练习(这是预期的)来让它工作,但我不能让它在GlassFish/Payara和JBoss/WildFly上工作。
更具体地说,我不希望使用默认数据源,因为在我的场景中,我实际上使用的是两个不同的数据源。例如用于参考数据,而另一个用于事务处理。
发布于 2017-05-06 00:50:50
如果您使用的所有应用程序服务器都与JavaEE7兼容,则可以使用默认数据源,根据EE7规范,该数据源可在以下位置获得:
java:comp/DefaultDataSource因为我对WebSphere自由很熟悉,所以我可以向您介绍有关自由的默认数据源的文档:
Configuring a default data source
如果您使用的是JNDI传统型,那么从v9.0开始,它就支持JavaEE7,并且有一个默认的数据源可用(在规范强制的WebSphere名称下)。
发布于 2017-05-06 06:28:07
如果您希望使用在所有服务器上都有效的相同JNDI名,最好使用资源引用,如What is resource-ref in web.xml used for?中所述
基本上,您可以定义一个任意的JNDI名称(理想情况下不带任何java:comp前缀或类似的名称,类似于"myDatasource"),然后将其映射到由目标server.You提供的具体JNDI名称。如果服务器不能直接使用JNDI (例如GlassFish/Payara的glassfish-web.xml,WildFly的jboss-web.xml,WebSphere经典和自由的ibm-web-bnd.xml ),则需要使用映射为每个服务器定义特定于服务器的描述符。TomEE似乎支持没有任何前缀的引用,所以如果你选择一个没有前缀的名称,它应该能够在没有任何额外映射的情况下进行configure a datasource。
https://stackoverflow.com/questions/43809960
复制相似问题