javax.naming.Reference incompatible with org.hibernate.SessionFactory
up vote
-1
down vote
favorite
i am using hibernate-core-4.2.21.Final on websphere 8.5.5.4
hibernate configuration is as follows:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory name="mySessionFactory">
<property name="hibernate.hbm2ddl.auto">update</property>
<property name="hibernate.show_sql">false</property>
<property name="hibernate.format_sql">true</property>
<property name="hibernate.connection.datasource">MyDS</property>
<property name="hibernate.default_schema">dbo</property>
<property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property>
<property name="hibernate.connection.autocommit">false</property>
<property name="hibernate.jndi.class">com.ibm.websphere.naming.WsnInitialContextFactory</property>
<property name="hibernate.jndi.url">corbaloc::myapp-prod-fnicn1.my.com:2809,:myapp-prod-FNICN2.my.com:2809,:myapp-prod-fnicn1.my.com:2811,:myapp-prod-FNICN2.my.com:2811,:myapp-prod-fnicn1.my.com:2812,:myapp-prod-FNICN2.my.com:2812</property>
<property name="hibernate.transaction.auto_close_session">true</property>
<property name="hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</property>
<property name="hibernate.transaction.flush_before_completion">true</property>
<property name="hibernate.transaction.manager_lookup_class">org.hibernate.transaction.WebSphereExtendedJTATransactionLookup</property>
<property name="hibernate.current_session_context_class">jta</property>
<property name="jta.UserTransaction">java:comp/UserTransaction</property>
<mapping resource="gov/mci/efada/entities/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>
how i configure hibernate :
Configuration configuration = new Configuration().configure("hibernate.cfg.xml");
serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties())
.buildServiceRegistry();
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
how i get the session factory :
sessionFactory = (SessionFactory) new InitialContext().lookup("mySessionFactory");
sometimes, the lookup for SessionFactory throws :
javax.naming.Reference incompatible with org.hibernate.SessionFactory
please advise how to fix this error.
java hibernate websphere websphere-8
add a comment |
up vote
-1
down vote
favorite
i am using hibernate-core-4.2.21.Final on websphere 8.5.5.4
hibernate configuration is as follows:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory name="mySessionFactory">
<property name="hibernate.hbm2ddl.auto">update</property>
<property name="hibernate.show_sql">false</property>
<property name="hibernate.format_sql">true</property>
<property name="hibernate.connection.datasource">MyDS</property>
<property name="hibernate.default_schema">dbo</property>
<property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property>
<property name="hibernate.connection.autocommit">false</property>
<property name="hibernate.jndi.class">com.ibm.websphere.naming.WsnInitialContextFactory</property>
<property name="hibernate.jndi.url">corbaloc::myapp-prod-fnicn1.my.com:2809,:myapp-prod-FNICN2.my.com:2809,:myapp-prod-fnicn1.my.com:2811,:myapp-prod-FNICN2.my.com:2811,:myapp-prod-fnicn1.my.com:2812,:myapp-prod-FNICN2.my.com:2812</property>
<property name="hibernate.transaction.auto_close_session">true</property>
<property name="hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</property>
<property name="hibernate.transaction.flush_before_completion">true</property>
<property name="hibernate.transaction.manager_lookup_class">org.hibernate.transaction.WebSphereExtendedJTATransactionLookup</property>
<property name="hibernate.current_session_context_class">jta</property>
<property name="jta.UserTransaction">java:comp/UserTransaction</property>
<mapping resource="gov/mci/efada/entities/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>
how i configure hibernate :
Configuration configuration = new Configuration().configure("hibernate.cfg.xml");
serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties())
.buildServiceRegistry();
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
how i get the session factory :
sessionFactory = (SessionFactory) new InitialContext().lookup("mySessionFactory");
sometimes, the lookup for SessionFactory throws :
javax.naming.Reference incompatible with org.hibernate.SessionFactory
please advise how to fix this error.
java hibernate websphere websphere-8
why the downvote ?
– Mahmoud Saleh
Nov 6 at 9:26
add a comment |
up vote
-1
down vote
favorite
up vote
-1
down vote
favorite
i am using hibernate-core-4.2.21.Final on websphere 8.5.5.4
hibernate configuration is as follows:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory name="mySessionFactory">
<property name="hibernate.hbm2ddl.auto">update</property>
<property name="hibernate.show_sql">false</property>
<property name="hibernate.format_sql">true</property>
<property name="hibernate.connection.datasource">MyDS</property>
<property name="hibernate.default_schema">dbo</property>
<property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property>
<property name="hibernate.connection.autocommit">false</property>
<property name="hibernate.jndi.class">com.ibm.websphere.naming.WsnInitialContextFactory</property>
<property name="hibernate.jndi.url">corbaloc::myapp-prod-fnicn1.my.com:2809,:myapp-prod-FNICN2.my.com:2809,:myapp-prod-fnicn1.my.com:2811,:myapp-prod-FNICN2.my.com:2811,:myapp-prod-fnicn1.my.com:2812,:myapp-prod-FNICN2.my.com:2812</property>
<property name="hibernate.transaction.auto_close_session">true</property>
<property name="hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</property>
<property name="hibernate.transaction.flush_before_completion">true</property>
<property name="hibernate.transaction.manager_lookup_class">org.hibernate.transaction.WebSphereExtendedJTATransactionLookup</property>
<property name="hibernate.current_session_context_class">jta</property>
<property name="jta.UserTransaction">java:comp/UserTransaction</property>
<mapping resource="gov/mci/efada/entities/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>
how i configure hibernate :
Configuration configuration = new Configuration().configure("hibernate.cfg.xml");
serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties())
.buildServiceRegistry();
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
how i get the session factory :
sessionFactory = (SessionFactory) new InitialContext().lookup("mySessionFactory");
sometimes, the lookup for SessionFactory throws :
javax.naming.Reference incompatible with org.hibernate.SessionFactory
please advise how to fix this error.
java hibernate websphere websphere-8
i am using hibernate-core-4.2.21.Final on websphere 8.5.5.4
hibernate configuration is as follows:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory name="mySessionFactory">
<property name="hibernate.hbm2ddl.auto">update</property>
<property name="hibernate.show_sql">false</property>
<property name="hibernate.format_sql">true</property>
<property name="hibernate.connection.datasource">MyDS</property>
<property name="hibernate.default_schema">dbo</property>
<property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property>
<property name="hibernate.connection.autocommit">false</property>
<property name="hibernate.jndi.class">com.ibm.websphere.naming.WsnInitialContextFactory</property>
<property name="hibernate.jndi.url">corbaloc::myapp-prod-fnicn1.my.com:2809,:myapp-prod-FNICN2.my.com:2809,:myapp-prod-fnicn1.my.com:2811,:myapp-prod-FNICN2.my.com:2811,:myapp-prod-fnicn1.my.com:2812,:myapp-prod-FNICN2.my.com:2812</property>
<property name="hibernate.transaction.auto_close_session">true</property>
<property name="hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</property>
<property name="hibernate.transaction.flush_before_completion">true</property>
<property name="hibernate.transaction.manager_lookup_class">org.hibernate.transaction.WebSphereExtendedJTATransactionLookup</property>
<property name="hibernate.current_session_context_class">jta</property>
<property name="jta.UserTransaction">java:comp/UserTransaction</property>
<mapping resource="gov/mci/efada/entities/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>
how i configure hibernate :
Configuration configuration = new Configuration().configure("hibernate.cfg.xml");
serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties())
.buildServiceRegistry();
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
how i get the session factory :
sessionFactory = (SessionFactory) new InitialContext().lookup("mySessionFactory");
sometimes, the lookup for SessionFactory throws :
javax.naming.Reference incompatible with org.hibernate.SessionFactory
please advise how to fix this error.
java hibernate websphere websphere-8
java hibernate websphere websphere-8
asked Nov 6 at 5:16
Mahmoud Saleh
15.4k97286443
15.4k97286443
why the downvote ?
– Mahmoud Saleh
Nov 6 at 9:26
add a comment |
why the downvote ?
– Mahmoud Saleh
Nov 6 at 9:26
why the downvote ?
– Mahmoud Saleh
Nov 6 at 9:26
why the downvote ?
– Mahmoud Saleh
Nov 6 at 9:26
add a comment |
1 Answer
1
active
oldest
votes
up vote
0
down vote
I solved the issue by making a singleton class as follows :
public class EntityHome {
protected static final Log log = LogFactory.getLog(EntityHome.class);
protected SessionFactory sessionFactory;
private static ServiceRegistry serviceRegistry;
private static EntityHome entityHome;
public static EntityHome getInstance() {
if (entityHome == null) {
try {
entityHome = new EntityHome();
} catch (Exception e) {
AppLogger.log("########### unable to configure hibernate,exception is: " + e.getMessage());
entityHome = null;
}
}
return entityHome;
}
private EntityHome() throws Exception {
try {
configureHibernate();
} catch (Exception e) {
throw e;
}
}
private void configureHibernate() throws HibernateException {
Configuration configuration = new Configuration().configure("hibernate.cfg.xml");
serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties())
.buildServiceRegistry();
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
}
public SessionFactory getSessionFactory() throws NamingException {
if (sessionFactory == null || sessionFactory.isClosed()) {
configureHibernate();
}
return sessionFactory;
}
public UserTransaction getTransaction() {
UserTransaction transaction = null;
try {
Object o = new InitialContext().lookup("java:comp/UserTransaction");
transaction = (UserTransaction) o;
return transaction;
} catch (Exception e) {
throw new IllegalStateException("Could not locate java:comp/UserTransaction in JNDI");
}
}
public static <T> List<T> fromSetToList(Set<T> set) {
List<T> list = new ArrayList<T>();
for (T o : set) {
list.add(o);
}
return list;
}
}
and in each DAO class i call the singleton class as follows :
public class CarCategoryHome {
private final SessionFactory sessionFactory = getSessionFactory();
protected SessionFactory getSessionFactory() {
try {
return EntityHome.getInstance().getSessionFactory();
} catch (NamingException e) {
AppLogger.Log(e);
return null;
}
}
public CarCategory findById(Integer id) {
try {
CarCategory instance = (CarCategory) sessionFactory.getCurrentSession()
.get("com.myapp.data.CarCategory", id);
return instance;
} catch (RuntimeException re) {
throw re;
}
}
}
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
I solved the issue by making a singleton class as follows :
public class EntityHome {
protected static final Log log = LogFactory.getLog(EntityHome.class);
protected SessionFactory sessionFactory;
private static ServiceRegistry serviceRegistry;
private static EntityHome entityHome;
public static EntityHome getInstance() {
if (entityHome == null) {
try {
entityHome = new EntityHome();
} catch (Exception e) {
AppLogger.log("########### unable to configure hibernate,exception is: " + e.getMessage());
entityHome = null;
}
}
return entityHome;
}
private EntityHome() throws Exception {
try {
configureHibernate();
} catch (Exception e) {
throw e;
}
}
private void configureHibernate() throws HibernateException {
Configuration configuration = new Configuration().configure("hibernate.cfg.xml");
serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties())
.buildServiceRegistry();
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
}
public SessionFactory getSessionFactory() throws NamingException {
if (sessionFactory == null || sessionFactory.isClosed()) {
configureHibernate();
}
return sessionFactory;
}
public UserTransaction getTransaction() {
UserTransaction transaction = null;
try {
Object o = new InitialContext().lookup("java:comp/UserTransaction");
transaction = (UserTransaction) o;
return transaction;
} catch (Exception e) {
throw new IllegalStateException("Could not locate java:comp/UserTransaction in JNDI");
}
}
public static <T> List<T> fromSetToList(Set<T> set) {
List<T> list = new ArrayList<T>();
for (T o : set) {
list.add(o);
}
return list;
}
}
and in each DAO class i call the singleton class as follows :
public class CarCategoryHome {
private final SessionFactory sessionFactory = getSessionFactory();
protected SessionFactory getSessionFactory() {
try {
return EntityHome.getInstance().getSessionFactory();
} catch (NamingException e) {
AppLogger.Log(e);
return null;
}
}
public CarCategory findById(Integer id) {
try {
CarCategory instance = (CarCategory) sessionFactory.getCurrentSession()
.get("com.myapp.data.CarCategory", id);
return instance;
} catch (RuntimeException re) {
throw re;
}
}
}
add a comment |
up vote
0
down vote
I solved the issue by making a singleton class as follows :
public class EntityHome {
protected static final Log log = LogFactory.getLog(EntityHome.class);
protected SessionFactory sessionFactory;
private static ServiceRegistry serviceRegistry;
private static EntityHome entityHome;
public static EntityHome getInstance() {
if (entityHome == null) {
try {
entityHome = new EntityHome();
} catch (Exception e) {
AppLogger.log("########### unable to configure hibernate,exception is: " + e.getMessage());
entityHome = null;
}
}
return entityHome;
}
private EntityHome() throws Exception {
try {
configureHibernate();
} catch (Exception e) {
throw e;
}
}
private void configureHibernate() throws HibernateException {
Configuration configuration = new Configuration().configure("hibernate.cfg.xml");
serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties())
.buildServiceRegistry();
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
}
public SessionFactory getSessionFactory() throws NamingException {
if (sessionFactory == null || sessionFactory.isClosed()) {
configureHibernate();
}
return sessionFactory;
}
public UserTransaction getTransaction() {
UserTransaction transaction = null;
try {
Object o = new InitialContext().lookup("java:comp/UserTransaction");
transaction = (UserTransaction) o;
return transaction;
} catch (Exception e) {
throw new IllegalStateException("Could not locate java:comp/UserTransaction in JNDI");
}
}
public static <T> List<T> fromSetToList(Set<T> set) {
List<T> list = new ArrayList<T>();
for (T o : set) {
list.add(o);
}
return list;
}
}
and in each DAO class i call the singleton class as follows :
public class CarCategoryHome {
private final SessionFactory sessionFactory = getSessionFactory();
protected SessionFactory getSessionFactory() {
try {
return EntityHome.getInstance().getSessionFactory();
} catch (NamingException e) {
AppLogger.Log(e);
return null;
}
}
public CarCategory findById(Integer id) {
try {
CarCategory instance = (CarCategory) sessionFactory.getCurrentSession()
.get("com.myapp.data.CarCategory", id);
return instance;
} catch (RuntimeException re) {
throw re;
}
}
}
add a comment |
up vote
0
down vote
up vote
0
down vote
I solved the issue by making a singleton class as follows :
public class EntityHome {
protected static final Log log = LogFactory.getLog(EntityHome.class);
protected SessionFactory sessionFactory;
private static ServiceRegistry serviceRegistry;
private static EntityHome entityHome;
public static EntityHome getInstance() {
if (entityHome == null) {
try {
entityHome = new EntityHome();
} catch (Exception e) {
AppLogger.log("########### unable to configure hibernate,exception is: " + e.getMessage());
entityHome = null;
}
}
return entityHome;
}
private EntityHome() throws Exception {
try {
configureHibernate();
} catch (Exception e) {
throw e;
}
}
private void configureHibernate() throws HibernateException {
Configuration configuration = new Configuration().configure("hibernate.cfg.xml");
serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties())
.buildServiceRegistry();
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
}
public SessionFactory getSessionFactory() throws NamingException {
if (sessionFactory == null || sessionFactory.isClosed()) {
configureHibernate();
}
return sessionFactory;
}
public UserTransaction getTransaction() {
UserTransaction transaction = null;
try {
Object o = new InitialContext().lookup("java:comp/UserTransaction");
transaction = (UserTransaction) o;
return transaction;
} catch (Exception e) {
throw new IllegalStateException("Could not locate java:comp/UserTransaction in JNDI");
}
}
public static <T> List<T> fromSetToList(Set<T> set) {
List<T> list = new ArrayList<T>();
for (T o : set) {
list.add(o);
}
return list;
}
}
and in each DAO class i call the singleton class as follows :
public class CarCategoryHome {
private final SessionFactory sessionFactory = getSessionFactory();
protected SessionFactory getSessionFactory() {
try {
return EntityHome.getInstance().getSessionFactory();
} catch (NamingException e) {
AppLogger.Log(e);
return null;
}
}
public CarCategory findById(Integer id) {
try {
CarCategory instance = (CarCategory) sessionFactory.getCurrentSession()
.get("com.myapp.data.CarCategory", id);
return instance;
} catch (RuntimeException re) {
throw re;
}
}
}
I solved the issue by making a singleton class as follows :
public class EntityHome {
protected static final Log log = LogFactory.getLog(EntityHome.class);
protected SessionFactory sessionFactory;
private static ServiceRegistry serviceRegistry;
private static EntityHome entityHome;
public static EntityHome getInstance() {
if (entityHome == null) {
try {
entityHome = new EntityHome();
} catch (Exception e) {
AppLogger.log("########### unable to configure hibernate,exception is: " + e.getMessage());
entityHome = null;
}
}
return entityHome;
}
private EntityHome() throws Exception {
try {
configureHibernate();
} catch (Exception e) {
throw e;
}
}
private void configureHibernate() throws HibernateException {
Configuration configuration = new Configuration().configure("hibernate.cfg.xml");
serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties())
.buildServiceRegistry();
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
}
public SessionFactory getSessionFactory() throws NamingException {
if (sessionFactory == null || sessionFactory.isClosed()) {
configureHibernate();
}
return sessionFactory;
}
public UserTransaction getTransaction() {
UserTransaction transaction = null;
try {
Object o = new InitialContext().lookup("java:comp/UserTransaction");
transaction = (UserTransaction) o;
return transaction;
} catch (Exception e) {
throw new IllegalStateException("Could not locate java:comp/UserTransaction in JNDI");
}
}
public static <T> List<T> fromSetToList(Set<T> set) {
List<T> list = new ArrayList<T>();
for (T o : set) {
list.add(o);
}
return list;
}
}
and in each DAO class i call the singleton class as follows :
public class CarCategoryHome {
private final SessionFactory sessionFactory = getSessionFactory();
protected SessionFactory getSessionFactory() {
try {
return EntityHome.getInstance().getSessionFactory();
} catch (NamingException e) {
AppLogger.Log(e);
return null;
}
}
public CarCategory findById(Integer id) {
try {
CarCategory instance = (CarCategory) sessionFactory.getCurrentSession()
.get("com.myapp.data.CarCategory", id);
return instance;
} catch (RuntimeException re) {
throw re;
}
}
}
answered 2 days ago
Mahmoud Saleh
15.4k97286443
15.4k97286443
add a comment |
add a comment |
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53166093%2fjavax-naming-reference-incompatible-with-org-hibernate-sessionfactory%23new-answer', 'question_page');
}
);
Post as a guest
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
why the downvote ?
– Mahmoud Saleh
Nov 6 at 9:26