开发时的环境配置如下: 写一个启动类加载和绑定hibernate的sessionfactory到weblogic下 代码如下: public class HibernateStartUp implements T3StartupDef {
public static String CONFIG_FILE_PATH = "/hibernate.cfg.xml";
public void setServices(T3ServicesDef services) {} public static final String SESSION_FACTORY_JNDI = "hibernate"; public static final String URL = "t3://localhost:7001"; public String startup(String name, Hashtable args) throws Exception { try {
doBind(); return "Hibernate Startup completed successfully"; } catch (Exception e) { } return "Hibernate Startup completed successfully"; } private static void doBind( ) throws Exception { Properties environment = null; InitialContext context = null;
try { environment = new Properties( ); environment.put( Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory"); environment.put( Context.PROVIDER_URL, URL ); context = new InitialContext( environment );
Configuration configuration = (new Configuration()).configure(CONFIG_FILE_PATH); SessionFactory factory = configuration.buildSessionFactory(); if (factory == null) throw new Exception("SessionFactory cannot be built?!");
try { if( context.lookup("hibernate")!= null ) { context.rebind("hibernate", factory); } else { context.bind("hibernate", factory); } } catch ( NamingException nameEx ) { nameEx.printStackTrace(); context.bind("hibernate", factory ); } } catch ( NamingException nameExp ) { throw new Exception( "NamingException: " + nameExp.getMessage( )); } catch( Exception excp ) { throw excp; }
}
static private InitialContext getInitialContext() throws Exception { String url = "t3://localhost:7001";
Properties properties = null; try { properties = new Properties(); properties.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory"); properties.put(Context.PROVIDER_URL, url); return new InitialContext(properties); } catch(Exception e) { logger.fatal("Unable to connect to WebLogic server at " + url); logger.fatal("Please make sure that the server is running."); throw e; } } } 然后编译 在Jbuilder2005的Configserver下的calsspath下面加入这个类的所在路径,我的是C:\work\overstock\classes 然后把hibernate用到的jar文件也加入,就可以开发了。
部署的时候只要把这些路径加入到domain的startWebLogic.cmd中就可以,不过要把C:\work\overstock\classes中的类打成jar包再加,要不weblogic会找不到的。
参考文章:http://www.hibernate.org/120.html 
|