Posted on 2007-12-05 16:01
G_G 閱讀(973)
評論(1) 編輯 收藏 所屬分類:
EJB
在此特別感謝:sql技術群主 ☆藍藍心情★
謝謝在中午遠程教我 EJB
原理參考:EJB原理學習_RMIC
這可能是我第一個EJB 和大家分享:
環境:jboss+ejb+jdk5.0
需要jar包
注:Client中 Test.jar 就是 EJBTest(服務器打的包)
EJB組件:
接口
package
?org.test;
import
?javax.ejb.Remote;
//在我的EJB原理中介紹
//是可以被
rmic 的接口
@Remote
public
?
interface
?IHello?{
????
public
?String?sayHello(String?name);
}
實現類
package
?org.test;
import
?javax.ejb.Stateless;
import
?org.jboss.annotation.ejb.RemoteBinding;
@Stateless
//設置遠程JNDI名字(設置遠程JNDI名字,客戶端在通過JNDI lookup的時候,用的就是這個名字)
//不同中間件的實現,默認JNDI名字是不一樣的,所以不一定是***/Remote或***/Local
//RemoteBinding是 jboss特有的
@RemoteBinding(jndiBinding
=
"
MclarenEJB
"
)
public
?
class
?Hello?
implements
?IHello?{
????
public
?String?sayHello(String?name)?{
????????
return
?
"
Hello?
"
+
name;
????}
}
jdk編輯+打包成jar后熱部署到%JBOSS_HOME%\server\default\deploy
客戶端:
import
?java.util.Properties;
import
?javax.naming.Context;
import
?javax.naming.InitialContext;
import
?org.test.IHello;
public
?
class
?Client?{
????
public
?
static
?
void
?main(String[]?args)?{
????????
try
?{
?????????Properties?props?
=
?
new
?Properties();
?????????props.put(
"
java.naming.factory.initial
"
,?
"
org.jnp.interfaces.NamingContextFactory
"
);
?????????props.put(
"
java.naming.provider.url
"
,?
"
jnp://localhost:1099
"
);
?????????props.put(
"
java.naming.factory.url.pkgs
"
,?
"
org.jboss.naming:org.jnp.interfaces
"
);
?????????Context?context?
=
?
new
?InitialContext(props);
?????????IHello?h?
=
?(IHello)?context.lookup(
"
MclarenEJB
"
);
?????????System.out.println(h.sayHello(
"
EJB?3.0?Test
"
));
????????}?
catch
(Exception?e)?{
????????????e.printStackTrace();
????????}
????}
}
結果是:
Hello EJB 3.0 Test