Posted on 2007-12-05 16:01
G_G 阅读(969)
评论(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