现在的位置: 首页 > 综合 > 正文

EJB3.0学习笔记–第一个EJB程序:

2019年09月16日 ⁄ 综合 ⁄ 共 1829字 ⁄ 字号 评论关闭

第一个EJB程序:
开发服务端程序:
1.新建一个EJB project:EJBTest_01
2.在src下建包:com.credream.ejb
3.写接口:FirstEjb.java
  package com.credream.ejb;
public interface FirstEjb {
/**
*1. EJB中需要一个接口
* @param name
* @return
*/
public String saySomething(String name);
}
4.写接口的实现类:FirstEjbBean.java 
  package com.credream.ejb;

import javax.ejb.Remote;
import javax.ejb.Stateless;
//3.添加配置
@Stateless
@Remote
//2.实现类
public class FirstEjbBean implements FirstEjb {
/**
 * 注意在EJB中,通常是以...Bean表示实现类类
 */
public String saySomething(String name) {
return "hello"+name;
}
}
--------------------------------------------------------------------
开发客户端程序:
1.客户端是一个java项目,新建javaProject:EJBTest01_client
2.将服务器端的接口打包:方法:在FirstEjb上右键选择--export--java中的  

jar--选择保存在EJBTest01_client目录下,并且命名为:EJBTest_01.jar
3.将这个jar包,加入到这个javaproject的类路径中;
4.这个接口就是在客户端和服务器端建立一个关系;
5.将JBOSS安装目录下的client目录里面的所有jar包,加入到客户端项目中
6.JNDI:JNDI(Java Naming and Directory Interface,Java命名和目录接口) 

 是一组在Java应用中访问命名和目录服务的API。命名服务将名称和对象联   

 系起来,使得我们可以用名称访问对象。目录服务是一种命名服务,在这种  

 服务里,对象不但有名称,还有属性。
----------------------------------------------------
7.编写客户端代码:
  FirstEjbClient.java
  package com.credream.ejb;

import javax.naming.InitialContext;

public class FirstEjbClient {
public static void main(String[] args) throws Exception{
InitialContext context=new InitialContext();
 FirstEjb firstEjb=(FirstEjb) context.lookup("FirstEjbBean/remote");
 String string=firstEjb.saySomething("张三");
 System.out.println(string);
 /**
调用服务端的接口的实现类FirstEjbBean
          这项也可以在EJB启动的日志里得到:
    23:20:01,637 INFO  [EJBContainer] STARTED EJB: 

com.credream.ejb.FirstEjbBean ejbName: FirstEjbBean
    FirstEjbBean/remote:这里前面是接口实现类的名字,后面是调用方式;
*/
}
}
--------------------------------------------------------------
8.配置JNDI:
  a.JNDI:就像一个工厂,可以找到具体的实现类在哪里;
  b.在src类路径下建立:jndi.properties
 java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
 java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
 java.naming.provider.url=localhost

抱歉!评论已关闭.