`
qxmcool
  • 浏览: 91117 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

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

    博客分类:
  • EJB
阅读更多
1.创建一个ejb项目名称为ejb2_1,选择j2ee1.4支持ejb2.x

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

  public interface MyRemote extends EJBObject {

public void printValue()throws RemoteException;
  }

3.创建一个home接口
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;
  }
4.创建一个stateless的SessionBean
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("连接成功");
}
}
   


配置文件
文件ejb-jar.xml
<?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>


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



5客户端的实现

创建一个ejb项目名称为ejb2_1_cilent

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();
}
}


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,这里就不多说了
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics