将容器管理的EntityManger / EntityManagerFactory / PersistenceContext公开到JNDI

时间:2019-01-16 11:13:01

标签: websphere jndi persistence.xml

正如标题所述,我想知道是否有可能通过部署在Websphere Application Server版本上的企业应用程序中的JNDI查找容器管理的EntityManger(或EntityManagerFactory或PersistenceContext)。 8.5或9.0,而没有通过nmap -sV --script unusual-port --script rdp-enum-encryption -p 13389 -n -Pn -sS -T4 1.2.3.4/10 中的<persistence-context-ref> / <persistence-unit-ref>进行显式引用。

我发现

在JBoss中是可能的

web.xml

输入<property name="jboss.entity.manager.factory.jndi.name" value="persistence-units/JpaPersistence"/>,但找不到与Websphere类似的内容。

1 个答案:

答案 0 :(得分:0)

我相信JPA规范section 7.2.1具有您所需要的信息:

持久性上下文注入示例:

    @PersistenceContext(name="persistence-units/JpaPersistence")
    EntityManager em;

JNDI查找示例:

    @Stateless
    @PersistenceContext(name="persistence-units/JpaPersistence")
    public class MySessionBean implements MyInterface {
        @Resource SessionContext ctx;
        public void doSomething() {
            EntityManager em = (EntityManager)ctx.lookup("persistence-units/JpaPersistence");
            ...
        }
    }

我建议只使用@PersistenceContext而不是手动查找资源来使容器注入引用