posts - 165, comments - 198, trackbacks - 0, articles - 1
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

EJB小例

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





评论

# re: EJB小例  回复  更多评论   

2007-12-05 16:23 by G_G
大哥说:

Skynet :
RemoteBinding 那他的用途是什么?
☆蓝蓝心情★ 16:19:57
Jboss的对JPA的实现采用Hibernate,而其他的公司,如bea,sun等的实现采用的oracle公司的 toplink
Skynet 16:20:02
RemoteBinding 那他的用途是什么?
☆蓝蓝心情★ 16:20:22
你以前搞过Hibernate,就到jboss的JPA实现上展示下身手
☆蓝蓝心情★ 16:20:35
设置远程JNDI名字
☆蓝蓝心情★ 16:20:57
所以客户端在通过JNDI lookup的时候,用的就是这个名字
☆蓝蓝心情★ 16:21:33
不同中间件的实现,默认JNDI名字是不一样的,所以不一定是***/Remote或***/Local
☆蓝蓝心情★ 16:22:00
相当于我们今天RMI的那个serviceName一样
☆蓝蓝心情★ 16:22:07
bind方法的参数

只有注册用户登录后才能发表评论。


网站导航: