[原创]EJB简单实例_Tomcat, WebLogic及J2EE讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Tomcat, WebLogic及J2EE讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3538 | 回复: 0   主题: [原创]EJB简单实例        下一篇 
binbin.qu
注册用户
等级:上士
经验:300
发帖:14
精华:0
注册:1970-1-1
状态:离线
发送短消息息给binbin.qu 加好友    发送短消息息给binbin.qu 发消息
发表于: IP:您无权察看 2014-7-3 16:18:43 | [全部帖] [楼主帖] 楼主

会话bean(session bean)

会话bean分有状态与无状态两种,因为有状态会话bean的一个实例只供一个用户使用,性能开销较大,所以一般不使用,本次用的是无状态会话bean。

先新建一个EJB项目TestEJB,接着建一个接口类

//helloEJB.java
package com.test.ejb;
public interface helloEJB {
      public String sayHello(String name);
}


再建一个session bean来实现接口,注意这一步需要在eclipse—>properties—>Java Buid Path中导入额外的jar包,否则ejb会报错。因为EJB实例用的是weblogic部署,所以导入的是weblogic安装文件夹下wlserver10.3—>server—>lib文件夹中的wlclient.jar包

//helloEJBBean.java
package com.test.ejb;
import javax.ejb.Remote;
import javax.ejb.Stateless;
@Stateless(mappedName = "helloEJB")
@Remote(helloEJB.class)
public class helloEJBBean implements helloEJB{
      public String sayHello(String name) {
            return "hello," + name;
      }
}


然后把项目打包成jar文件,在weblogic控制台中部署,接着新建java项目进行测试

//hello.java
package com.test.run;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import com.test.ejb.helloEJB;
public class hello {
      public static void main(String args[]) throws NamingException{
            Properties p=new Properties();p.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
            p.put(Context.PROVIDER_URL,"t3://192.168.1.102:7001");
            Context cxt = new InitialContext(p);
            helloEJB ejb = (helloEJB) cxt.lookup("helloEJB#com.test.ejb.helloEJB");
            String str = ejb.sayHello("nike");
            System.out.println(str);
      }
}


注意,该项目中同样需导入上述的wlclient.jar包,另外还需导入打包好的EJB项目,否则也会报错。在生成ejb后应该已经建立了本地接口和远程接口,在部署ejb时weblogic会根据这两个接口自动生成本地接口类和远程接口类。所以不用实现这两个接口类,但必须在开发客户端程序的时候将这两个接口的类文件放到客户端工程中。   

代码中”192.168.1.102”为本机ip地址,weblogic建域的时候监听的地址,也就是进入控制台需要输入的地址。

"helloEJB#com.test.ejb.helloEJB"为EJB项目绑定的JNDI名称,在控制台—>管理服务器—>查看JNDI树。


最后运行结果

北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论