本人是一个Java初级学者,向你们请教一个问题:
Java应用程序(非web程序,即Java程序不是运行在Tomcat/Jboss等服务器上的)+ Hibernate + JTA实现跨数据库操作的问题,Hibernate配置如下:
文件a.hibernate.cfg.xml配置如下:
文件b.hibernate.cfg.xml配置如下:
现在遇到的问题是:
<1>.上述配置是否可行? 若配置不正确,那么正确配置方式是?
<2>.用如上配置,业务代码如下:
Session abeanSession = AbeanSessionFactory.getSession();
Session bbeanSession = BbeanSessionFactory.getSession();
UserTransaction userTransaction = null;
try {
userTransaction = (UserTransaction)new InitialContext().lookup("java:comp/UserTransaction");
userTransaction.begin();
//save Abean
Abean abean = new Artifact();
abean.setName("my_test");
abean.setSex(0);
abean = abeanDAO.save(abean, abeanSession);
//save Bbean
Bbean bbean = new Bbean();
control.setAbeand(abean.getArtifactID());
control.setState("Active");
bbeanDAO.save(bbean, bbeanSession);
userTransaction.commit();
} catch (Exception e) {
logger.error(e);
...
}
抛出异常是:
WARN - Could not bind factory to JNDI
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.getNameParser(Unknown Source)
at org.hibernate.util.NamingHelper.bind(NamingHelper.java:52)
at org.hibernate.impl.SessionFactoryObjectFactory.addInstance(SessionFactoryObjectFactory.java:90)
at org.hibernate.impl.SessionFactoryImpl.
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1176)
at com.sears.tec.databaseaccess.factory.CatalogcentralSessionFactory.
at com.sears.tec.databaseaccess.dao.ArtifactAndControlDAOTest.setUp(ArtifactAndControlDAOTest.java:42)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
该怎么解决,多谢你不吝指教!!
[该贴被myjdon于2008-07-02 16:56修改过]
[该贴被myjdon于2008-07-02 16:56修改过]
[该贴被myjdon于2008-07-02 17:10修改过]