weblogic為ejb容器,呼叫ejb模組,出現名稱空間不正確問題

ricky發表於2004-08-23
在test.java中去呼叫ejb模組的時候:
、、、
InitialContext ctx=new InitialContext();
Object objRef = ctx.lookup("java:comp/env/Hello"); ---在此處出現異常
、、、
具體出錯資訊如下
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:640)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:243)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:280)
at javax.naming.InitialContext.lookup(InitialContext.java:347)
at Test.main(Test.java:9)

說明:
1.使用weblogic做為ejb容器
2.我把Hello.jar複製到、、\user_projects\mydomain\applications 下面了
3.啟動weblogic時候沒有任何異常,所以就假定ejb模組--Hello.jar沒有問題,ejb-jar.xml假定也沒有問題

ejb-jar.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN"
"http://java.sun.com/dtd/ejb-jar_2_0.dtd">
<ejb-jar>
<description>
This is Hello EJB example
</description>
<display-name>HelloBean</display-name>
<enterprise-beans>
<session>
<display-name>Hello</display-name>
<ejb-name>Hello</ejb-name>
<home>HelloHome</home>
<remote>Hello</remote>
<ejb-class>HelloEJB</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
</ejb-jar>

下面是weblogic啟動時候的資訊,顯然該包已經被load了

<2004-8-23 下午03時53分27秒> <Notice> <Application Poller> <149400> <Activating
application: _appsdir_Hello_jar>
<2004-8-23 下午03時53分27秒> <Notice> <Application Poller> <149404> <Activate ap
plication _appsdir_Hello_jar on rickyserver - Running>
<2004-8-23 下午03時53分29秒> <Notice> <Application Poller> <149404> <Activate ap
plication _appsdir_Hello_jar on rickyserver - Completed>


請教:
Object objRef = ctx.lookup("java:comp/env/Hello"); 這句到底如何寫?或者是否還需要配置weblogic的什麼檔案嗎?

相關文章