开发时的环境配置如下:
写一个启动类加载和绑定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会找不到的。