myeclipse+jboss开发ejb2.x 无状态会话bean

本文档详细介绍了如何使用EJB 2.x创建一个简单的远程调用应用,包括定义远程接口、Home接口及 Stateless Session Bean 的实现,并通过客户端进行调用验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.创建一个ejb项目名称为ejb2_1,选择j2ee1.4支持ejb2.x

2.创建一个远程接口
[color=darkred] package com.qxm.ejb2;
import java.rmi.RemoteException;
import javax.ejb.EJBObject;

public interface MyRemote extends EJBObject {

public void printValue()throws RemoteException;
}[/color]
3.创建一个home接口
[color=darkred]package com.qxm.ejb2;

import java.rmi.RemoteException;
import javax.ejb.CreateException;
import javax.ejb.EJBHome;

public interface MyHome extends EJBHome {

public MyRemote create() throws RemoteException,CreateException;
}[/color]4.创建一个stateless的SessionBean
[color=darkred]package com.qxm.ejb2;

import java.rmi.RemoteException;

import javax.ejb.EJBException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;

public class MyFirstEjbBean implements SessionBean {

private static final long serialVersionUID = 1L;

@SuppressWarnings("unused")
private SessionContext context;

public void setContext(SessionContext context) {
this.context = context;
}

public void ejbCreate() throws EJBException, RemoteException {}

public void ejbActivate() throws EJBException, RemoteException {

}

public void ejbPassivate() throws EJBException, RemoteException {

}

public void ejbRemove() throws EJBException, RemoteException {

}

public void setSessionContext(SessionContext arg0) throws EJBException,
RemoteException {

}

/**
* 这个是ejb对象的实现方法
*/
public void printValue(){
System.out.println("连接成功");
}
}
[/color]

配置文件
文件ejb-jar.xml
[color=green]<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd"
version="2.1">

<enterprise-beans>
<session>
<ejb-name>MyRemote</ejb-name>
<home>com.qxm.ejb2.MyHome</home>
<remote>com.qxm.ejb2.MyRemote</remote>
<ejb-class>com.qxm.ejb2.MyFirstEjbBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
</ejb-jar>[/color]

[color=green]jboss.xml
_______________________________
<?xml version="1.0"?>
<jboss>
<enterprise-beans>
<session>
<ejb-name>MyRemote</ejb-name>
<jndi-name>MyHome</jndi-name>
</session>
</enterprise-beans>
</jboss>[/color]


5客户端的实现

创建一个ejb项目名称为ejb2_1_cilent

[color=darkred]package com.qxm.cilent;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.rmi.PortableRemoteObject;

import com.qxm.ejb2.MyHome;
import com.qxm.ejb2.MyRemote;

public class TestCilent {

public static void main(String[] args)throws Exception{

java.util.Properties props = new java.util.Properties();
props.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
//props.put(Context.URL_PKG_PREFIXES, "jboss.naming:org.jnp.interfaces");
props.put(Context.URL_PKG_PREFIXES, "org.jboss.naming");
props.put(Context.PROVIDER_URL, "localhost:1099");
props.put("java.naming.rmi.security.manager", "yes");
InitialContext context = new InitialContext(props);

Object obj = context.lookup("MyHome");
MyHome home = (MyHome)PortableRemoteObject.narrow(obj, MyHome.class);
MyRemote remote = home.create();
remote.printValue();
}
}[/color]

6.将ejb2_1中的home接口文件和配置问件打包为jar文件 或者将整个项目打包为jar文件,还有一种在开发时比较简便的方法 就时将ejb2_1引入到ejb客户端中,这样做的话可以在开发中节省大量的时间,由于我开发ejb所用的服务器时Jboss4.2.2GA所以找到你电脑硬盘上的安装目录,我的安装路径在G盘所以将G:\jboss-4.2.2.GA\clientx下的jar包BuildPath到你的ejb_cilent中在myeclipse中配置哈皮Jboss就OK了,Jboss的配置方法被myeclipse集成的很好,配置方法类似于tomcat,这里就不多说了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值