weblogic wlfullclient.jar


今天嘗試着測試一個weblogic10.3 ejb使用獨立客戶端調用 ,發現儘管引入了weblogic.jar,可是仍然有J2EE的Class找不到


Exception in thread "main" java.lang.NoClassDefFoundError: weblogic/security/subject/AbstractSubject
     at weblogic.jndi.WLInitialContextFactory.getInitialContext(WLInitialContextFactory.java:117)
     at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
     at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)


客戶端調用ejb代碼如下:
----------------------------------------
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;


public class EjbClientDemo {


public static void main(String[] args) throws NamingException {

Hashtable env = new Hashtable();

env.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
env.put(Context.PROVIDER_URL, "t3://localhost:7001");
env.put(Context.URL_PKG_PREFIXES, "weblogic.jndi");

Context ctx = new InitialContext(env);
Object obj = ctx.lookup("ejb.bm.bmCardPaymentService");
System.out.println(obj);
}
}
----------------------------------------
究其原因是因爲在客戶端代碼裏使用weblogic.jar,而10.3版本已經
不建議使用weblogic.jar了,新的客戶端庫支持爲wlfullclient.jar,這個包需要自行生成,
如下:
----------------------------------------
1. cd $WL_HOME/server/lib
2. java -jar ../../../../modules/com.bea.core.jarbuilder_1.2.0.0.jar
如果不出意外,則上面的操作會在lib目錄下生成wlfullclient.jar,將此包加入客戶端程序的classpath中就可。
----------------------------------------
詳見 http://forums.oracle.com/forums/thread.jspa?threadID=705919
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章