、自己写一个StartUp类,这个类要实现weblogic.common.T3StartupDef接口。Hibernate给出了这个类的代码片断,但是不全,我把它补全了,并且做了一些修改。代码如下:package com.fankai;import java.util.*;
import javax.naming.*;
import weblogic.common.T3StartupDef;
import weblogic.common.T3ServicesDef;
import org.apache.log4j.Logger;
import net.sf.hibernate.cfg.Configuration;
import net.sf.hibernate.SessionFactory;public class WLSStartup implements T3StartupDef {public static final String SESSION_FACTORY_JNDI = "hibernate";
public static final String URL = "t3://localhost:7001";
private static final Logger log = Logger.getLogger(WLSStartup.class);public void setServices(T3ServicesDef services) {}public String startup(String name, Hashtable args) throws Exception {
String METHOD_NAME = "startup ";
try {
log.info(METHOD_NAME + " Going to bind Hibernate object. ");
doBind( );
log.info (METHOD_NAME + " Bound Hibernate object!");
} catch (Exception e) {
log.info (METHOD_NAME + " Exception while binding Hibernate Object to Weblogic JNDI" );
e.printStackTrace( );
}
return "WLS 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);
log.info( "Constructing an Initial Directory Context object" );
context = new InitialContext( environment );Configuration conf = new Configuration().addClass(Cat.class);
SessionFactory sf = conf.buildSessionFactory();
if (sf == null) throw new Exception("SessionFactory cannot be built!");try {
if(context.lookup(SESSION_FACTORY_JNDI ) != null )
context.rebind(SESSION_FACTORY_JNDI, sf);
else
context.bind(SESSION_FACTORY_JNDI, sf);
} catch (NamingException nameEx ) {
context.bind(SESSION_FACTORY_JNDI, sf);
}} catch ( NamingException nameExp ) {
throw new Exception("NamingException: " + nameExp.getMessage());
} catch( Exception excp ) {
throw excp;
} finally {
if(context != null) {
try {
context.close( );
context = null;
} catch ( NamingException nameExp ) {
throw new Exception("NamingException for context close: " + nameExp.getMessage());
}
}
environment = null;
}
}
}------------------------------------------------
配置StartUp类
启动Weblogic,打开Console控制台,在左边的Applet树上找到StartUp & Shutdown,然后在右边点击“Configure a new Startup Class...”,在Name框里面随便填写,在ClassName里面填写你编写的StartUp类,我填写的是com.fankai.WLSStartup,然后点击“Apply”。然后切换到Target这选项卡,在Target-Server左边的Avaiable框里面选择“myserver”,点击右箭头,把它挪到右边的“Chosen”框里面去,最后再点击一下“Apply"按钮。如果此时Weblogic的DOS窗口里面没有出错信息,那么应该已经配置成功了。