第一个当然是永恒不变的hello world 啦。
NetBean中 新建项目 弹出对话框中选择ejb模块。 模块名Myejb , 服务器GlassFish v2 , javaEE版本选择JavaEE5 --> 右键单击模块名 --新建会话bean 弹出对话框 bean名称Hello ,包名ejb。 自动生成以下两个接口, 和一个类 然后添加业务方法后如下:
右键单击你所说创建的ejb模块名--- 部署 ,netbean 将自动启动glassfish 并部署到glassfish中 这是你可打开浏览器输入 http://localhost:4848/ , 登陆后可 应用程序下的ejb模块查看是否部署成功。
现在我们做一个客户端的测试类
新建一个普通的Java项目
1:右键单击它的子节点 库--- 添加 jar/文件夹--将ejb模块编译后的jar加入(刚才部署时 netbean将自动生成一个jar 文件 ---模块名.jar)
例如我的电脑上 是在C:\Documents and Settings\Administrator\My Documents\NetBeansProjects\Myejb\dist\Myejb.jar;
2:glassfish-v2ur2的安装目录\lib\下的
appserv-deployment-client.jar
appserv-rt.jar
javaee.jar
appserv-ext.jar
这几个jar 文件加入到库;
测试类如下:
运行后的结果为:
hello李亚希
NetBean中 新建项目 弹出对话框中选择ejb模块。 模块名Myejb , 服务器GlassFish v2 , javaEE版本选择JavaEE5 --> 右键单击模块名 --新建会话bean 弹出对话框 bean名称Hello ,包名ejb。 自动生成以下两个接口, 和一个类 然后添加业务方法后如下:
//远程接口
package ejb;
import javax.ejb.Remote;
@Remote
public interface HelloRemote {
String sayHello(String name);
}
//本地接口
package ejb;
import javax.ejb.Local;
@Local
public interface HelloLocal {
String sayHello(String name);
}
//实现远程接口的无状态会话bean
package ejb;
import javax.ejb.Stateless;
@Stateless(mappedName="ejb/HelloBean") //这里ejb/HelloBean" 就是他的jndi 的name了。
public class HelloBean implements HelloRemote {
public String sayHello(String name) {
return "hello" +name;
}
}
右键单击你所说创建的ejb模块名--- 部署 ,netbean 将自动启动glassfish 并部署到glassfish中 这是你可打开浏览器输入 http://localhost:4848/ , 登陆后可 应用程序下的ejb模块查看是否部署成功。
现在我们做一个客户端的测试类
新建一个普通的Java项目
1:右键单击它的子节点 库--- 添加 jar/文件夹--将ejb模块编译后的jar加入(刚才部署时 netbean将自动生成一个jar 文件 ---模块名.jar)
例如我的电脑上 是在C:\Documents and Settings\Administrator\My Documents\NetBeansProjects\Myejb\dist\Myejb.jar;
2:glassfish-v2ur2的安装目录\lib\下的
appserv-deployment-client.jar
appserv-rt.jar
javaee.jar
appserv-ext.jar
这几个jar 文件加入到库;
测试类如下:
package lyx.com.client;
import ejb.CartRemote;
import ejb.HelloRemote;
import ejb.SessionLessRemote;
import java.util.Properties;
import javax.naming.InitialContext;
import javax.naming.NamingException;
public class ClientTest {
public static void main(String[] args) {
Properties props = new Properties();
props.setProperty("java.naming.factory.initial", "com.sun.enterprise.naming.SerialInitContextFactory");
props.setProperty("java.naming.factory.url.pkgs", "com.sun.enterprise.naming");
props.setProperty("java.naming.factory.state", "com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");
props.setProperty("org.omg.CORBA.ORBInitialHost", "localhost");
props.setProperty("org.omg.CORBA.ORBInitialPort", "3700");
try {
InitialContext ctx = new InitialContext(props);
HelloRemote hr = (HelloRemote) ctx.lookup("ejb/HelloBean");
String result = hr.sayHello("李亚希");
System.out.println(result);
} catch (NamingException e) {
e.printStackTrace();
}
}
}
运行后的结果为:
hello李亚希