wildfly jndi oracle,java – 如何使JNDI名称与GlassFish和WildFly兼容

您可以修改Wildfly JNDi名称并从相应的JNDI名称中删除不需要的前缀,以查找两个应用程序服务器中的最小公分母.以下适用于Glassfish和JBoss AS 7.1.由于我希望Wildfly在这方面与JBoss向后兼容,我想它也适用于Wildfly.

坚持

注入:

@PersistenceContext(unitName="TestPU")

private EntityManager entityManager;

或者通过ejb-jar.xml:

entityManager

TestPU

...

相应的persistence.xml:

datasources/TestDS

org.jeeventstore.persistence.jpa.EventStoreEntry

(注意简单的jta-data-source JNDI名称)

这是一个glassfish-resources.xml文件,用于在部署时指定Derby数据库,类似的设置可用于MysqL或Postgres.

jndi-name="datasources/TestDS"/>

res-type="javax.sql.DataSource"

datasource-classname="org.apache.derby.jdbc.EmbeddedDataSource"

is-isolation-level-guaranteed="false">

以及JBoss standalone.xml中的设置:

jdbc:postgresql://localhost/test_db

...

资源

我没有在Glassfish上注入JavaMail组件,但是类似于datasoruce设置,尝试从@Resource注释中剥离“java:”部分也是值得的.

@Resource(name = "mail/myMailSession")

然后配置Wildfly,以便邮件资源在“java:mail / myMailSession”JNDI位置可用.

通过ejb-jar.xml注入

另一个选择是通过ejb-jar.xml文件手动注入字段,然后使用maven等构建工具将ejb-jar-glassfish.xml或ejb-jar-wildfly.xml中的任何一个复制到所需的ejb-汇编时的jar.xml.

在我们的一个项目中,我们使用混合方法来避免xml配置的负担:我们通过ejb-jar.xml配置少量“提供者”bean,例如将持久化上下文注入到PersistenceContextProvider中,然后使用CDI通过@EJB将PersistenceContextProvider注入EJB,无需进一步配置即可找到它们,因为它们位于同一个EAR中.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值