開發(fā)時的環(huán)境配置如下:
寫一個啟動類加載和綁定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文件也加入,就可以開發(fā)了。
部署的時候只要把這些路徑加入到domain的startWebLogic.cmd中就可以,不過要把
C:\work\overstock\classes中的類打成jar包再加,要不weblogic會找不到的。
參考文章:http://www.hibernate.org/120.html