Я пытаюсь зарегистрировать фабрику сеансов Hibernate из единицы сохранения в приложениях, развернутых в WildFly 8.2.1, и я столкнулся с предупреждением об исключении из Код Hibernate 4 (см. Ниже). И когда я смотрю на JNDI в консоли WildFly, сеансовые заводы, безусловно, не зарегистрированы. Я хотел бы, чтобы они находились в области «java: app», чтобы избежать коллизий имен, когда больше одного приложения может иметь одно и то же имя фабрики сеансов.Невозможно связать фабрику сеансов Hibernate с java: приложение в WildFly 8.2.1
Регистрация менеджера объектов в этой области действия прекрасна.
Если я оставил префикс «java: app» от имени фабрики сеанса, он просто привязывается к JNDI, но в глобальной области. Я понимаю, что могу навязывать какое-то расстояние между именами, но я надеялся, что мне это не понадобится.
Любой вход будет оценен по достоинству. Спасибо.
Подробности ниже ...
Живучесть Блок
<persistence-unit name="myPU" transaction-type="JTA">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<jta-data-source>java:/jdbc/MyDS</jta-data-source>
<exclude-unlisted-classes>true</exclude-unlisted-classes>
<mapping-file>MySchema.hbm.xml</mapping-file>
<properties>
<property name="jboss.entity.manager.jndi.name" value="java:app/em/MY_EM" />
<property name="hibernate.session_factory_name" value="java:app/sessions/my_FACTORY"/>
<property name="hibernate.query.imports" value="com.my.model" />
<property name="hibernate.current_session_context_class" value="thread" />
<property name="hibernate.use_outer_join" value="true" />
<property name="hibernate.jdbc.use_streams_for_binary" value="true" />
<property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect" />
</properties>
</persistence-unit>
Исключение сниппет
16: 14: 50044 WARN [org.hibernate.internal.SessionFactoryRegistry] (Пул потоков ServerService - 64) - HHH000277: Не удалось связать фабрику с JNDI: org.hibernate.engine.jndi.JndiException: Err или создание промежуточного контекста [Java: приложение]
Вызванный: javax.naming.NameNotFoundException: Java: приложение
Полное исключение Предупреждение от Hibernate
16: 14: 50044 WARN [org.hibernate.internal.SessionFactoryRegistry] (пул потоков ServerService - 64) - HHH000277: Не удалось связать фабрику с JNDI: org.hibernate.engine.jndi.JndiException: Ошибка создания промежуточного контекста [java: app] at org. hibernate.engine.jndi.internal.JndiServiceImp l.bind (JndiServiceImpl.java:205) [hibernate-core-4.3.7.Final.jar: 4.3.7.Final] at org.hibernate.engine.jndi.internal.JndiServiceImpl.bind (JndiServiceImpl.java:159) [hibernate-core-4.3.7.Final.jar: 4.3.7.Final] at org.hibernate.internal.SessionFactoryRegistry.addSessionFactory (SessionFactoryRegistry.java:103) [hibernate-core-4.3.7.Final.jar : 4.3.7.Final] at org.hibernate.internal.SessionFactoryImpl. (SessionFactoryImpl.java:497) [hibernate-core-4.3.7.Final.jar: 4.3.7.Final] at org.hibernate.cfg .Configuration.buildSessionFactory (Configuration.java:1859) [hibernate-core-4.3.7.Final.jar: 4.3.7.Final] at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl $ 4.perform (EntityManagerFactoryBuilderImpl.java : 852) [hibernate-entitymanager-4.3.7.Final.jar: 4.3.7.Финал] на org.hibernate.jpa.boot .internal.EntityManagerFactoryBuilderImpl $ 4.perform (EntityManagerFactoryBuilderImpl.java:845) [hibernate-entitymanager-4.3.7.Final.jar: 4.3.7.Final] at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl (ClassLoaderServiceImpl.java:398) [hibernate-core-4.3.7.Final.jar: 4.3.7.Final] at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build (EntityManagerFactoryBuilderImpl.java:844) [hibernate -entitymanager-4.3.7.Final.jar: 4.3.7.Final] на org.jboss.as.jpa.hibernate4.TwoPhaseBootstrapImpl.build (TwoPhaseBootstrapImpl.java:44) [jipijapa-hibernate4-3-1.0.1.Final.jar:] at org.jboss.as.jpa.service.PersistenceUnitServiceImpl $ 1 $ 1.run (PersistenceUnitServiceImpl.java:154) [wildfly-jpa-8.2.1.Final.jar: 8.2.1.Final] at org.jboss.as.jpa.service.PersistenceUnitServiceImpl $ 1 $ 1.run (PersistenceUnitServiceImpl.java:117) [wildfly-jpa-8.2.1.Final.jar: 8.2.1.Final] at java.security.AccessController.doPrivileged (Native Method) [rt.jar: 1.8.0_51] at org.wildfly.security.manager.WildFlySecurityManager.doChecked (WildFlySecurityManager.java:474) [wildfly-security-manager-1.0.0.Final.jar: 1.0. 0.Final] at org.jboss.as.jpa.service.PersistenceUnitServiceImpl $ 1.run (PersistenceUnitServiceImpl.java:182) [wildfly-jpa-8.2.1.Final.jar: 8.2.1.Final] в java. util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142) [rt.jar: 1.8.0_51] at java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:617) [rt.jar: 1.8.0_51] at java.lang.Thread.run (Thread.java:745) [rt.jar: 1.8.0_51] на org.jboss.threads.JBossThread.run (JBossThread.java:122) Вызванный: javax.naming.NameNotFoundException: Java: приложение на org.jboss.as.naming.InitialContext $ DefaultInitialContext.findContext (InitialContext.java:187) [wildfly-naming-8.2.1.Final.jar: 8.2.1.Final] at org.jboss.as.naming.InitialContext $ DefaultInitialContext.createSubcontext (InitialContext.java:294) [wildfly -naming-8.2.1.Final.jar: 8.2.1.Final] at org.jboss.as.naming.NamingContext.createSubcontext (NamingContext.java:398) [wildfly-naming-8.2.1.Final.jar: 8.2.1.Финал] в javax.naming.InitialContext.createSubcontext (InitialContext.java:4 89) [rt.jar: 1.8.0_51] at javax.naming.InitialContext.createSubcontext (InitialContext.java:489) [rt.jar: 1.8.0_51] at org.hibernate.engine.jndi.internal.JndiServiceImpl. связывания (JndiServiceImpl.java:202) [гибернации-ядро-4.3.7.Final.jar: 4.3.7.Final] ... 18 более