`
yuankai08021
  • 浏览: 14817 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

EJB 部署自学笔记

    博客分类:
  • EJB
 
阅读更多
1.Eclipse中新建EJB工程,添加服务器为jboss
2.编写EJB服务端代码:
(1)、AdviceHome:

package headfist;

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

public interface AdviceHome extends EJBHome {
public Advice create() throws CreateException,RemoteException;
}


(2)、Advice:
package headfist;

import java.rmi.RemoteException;
import javax.ejb.EJBObject;

public interface Advice extends EJBObject {
public String getAdvice() throws RemoteException;
}


(3)、AdviceBean:
package headfist;

import java.rmi.RemoteException;

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

public class AdviceBean implements SessionBean{

private String[] adviceStrings = {"one","two","three","four","five","six"};

@Override
public void ejbActivate() throws EJBException, RemoteException {
System.out.println("ejb activate");

}

@Override
public void ejbPassivate() throws EJBException, RemoteException {
System.out.println("ejb Passivate");

}

@Override
public void ejbRemove() throws EJBException, RemoteException {
System.out.println("ejb remove");

}

@Override
public void setSessionContext(SessionContext sessioncontext)
throws EJBException, RemoteException {
System.out.println("session context");

}

public String getAdvice() {
System.out.println("in get advice");
int random = (int) (Math.random()*adviceStrings.length);
return adviceStrings[random];
}

public void ejbCreate() {
System.out.println("in ejb create");
}
}


3、编写配置文件:
ejb-jar.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
<ejb-jar>
  <display-name>Ejbl</display-name>
  <enterprise-beans>
    <session>
      <display-name>AdviceBean</display-name>
      <ejb-name>AdviceBean</ejb-name>
      <home>headfist.AdviceHome</home>
      <remote>headfist.Advice</remote>
      <ejb-class>headfist.AdviceBean</ejb-class>
      <session-type>Stateless</session-type>
      <transaction-type>Bean</transaction-type>
    </session>
  
  </enterprise-beans>
</ejb-jar>


Jboss.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jboss PUBLIC "-//JBoss//DTD JBOSS 4.0//EN" "http://www.jboss.org/j2ee/dtd/jboss_4_0.dtd">
<jboss>
<enterprise-beans>
  <session>
   <ejb-name>AdviceBean</ejb-name>
   <jndi-name>AdviceBean</jndi-name>
  </session>
</enterprise-beans>
</jboss>


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:1099




jar cvf AddCount.jar *.class META-INF/*.xml

配置类似如下:





3. 客户端代码:

import java.util.Properties;

import headfist.Advice;
import headfist.AdviceHome;

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


public class Client {

public static void main(String[] args) {
new Client().go();
}

public void go() {
try{
// Properties prop = new Properties();
// prop.setProperty("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
// prop.setProperty("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces");
// prop.setProperty("java.naming.provider.url","localhost:1099");

Context ctx=new InitialContext();

        Object o=ctx.lookup("AdviceBean");

        AdviceHome home=(AdviceHome)PortableRemoteObject.narrow(o,AdviceHome.class);

            Advice advisor=home.create();
            System.out.println(advisor.getAdvice());

        }catch(Exception e) {
        e.printStackTrace();
        }
}
}

客户端需要引入EJB服务端写的jar包,以及JBOSS服务器jar包,同时copy一份jndi.properties文件到src根目录下。
分享到:
评论

相关推荐

    Weblogic Ejb 学习笔记

    WebLogic EJB学习笔记主要涵盖了企业级Java Bean(Enterprise JavaBeans,简称EJB)在Oracle WebLogic Server中的应用和管理。EJB是Java EE(Java Platform, Enterprise Edition)平台的核心组件,用于构建可扩展、...

    EJB概述 学习笔记

    3. **EJB部署** EJB的部署涉及编写bean的Java源代码,定义bean的行为和服务。同时,需要创建一个部署描述符(deployment descriptor),它是一个XML文件,包含了关于bean的元数据,如接口、方法、事务属性等。部署...

    EJB3.0 学习笔记

    **EJB3.0 学习笔记** EJB(Enterprise JavaBeans)是Java EE平台中的核心组件,用于构建可扩展的、安全的、事务处理的分布式应用程序。EJB3.0是EJB的一个重大更新,引入了许多改进,使得开发过程更为简化,降低了...

    ejb 学习笔记6

    ### EJB学习笔记第六部分详解 #### 一、EJB之间的调用 EJB (Enterprise JavaBeans) 是Java EE平台中用于开发分布式企业应用程序的重要组件。在实际开发过程中,经常需要一个EJB调用另一个EJB来实现更复杂的业务...

    ejb学习笔记

    综上所述,《ejb学习笔记》涵盖了从EJB的基本概念、不同类型的Bean,到其部署、配置以及与企业信息系统集成的各种细节。对于希望深入了解并掌握EJB3开发技术的开发者而言,这些知识点构成了不可或缺的基础。

    EJB学习笔记2

    【EJB学习笔记2】 EJB,全称Enterprise JavaBeans,是Java EE(现在被称为Jakarta EE)平台的一部分,主要用于构建可复用的、安全的、可伸缩的服务器端应用程序。EJB标准定义了一组规范,使得开发者可以创建分布式...

    EJB学习笔记、运行机制

    【EJB学习笔记、运行机制】 企业级程序(Enterprise Application)是围绕商业目的设计的,具有分布分层的程序架构。这种类型的程序旨在满足大型企业的复杂需求,通常涉及多个组件和层,确保系统的稳定性和可扩展性...

    EJB学习笔记.doc

    【EJB学习笔记】 EJB,全称为Enterprise Java Beans,是Java平台上的一个标准,用于开发和部署服务器端的分布式组件。它基于Java语言,为创建高效能、安全且可扩展的企业级应用提供了框架。EJB规范由Java ...

    ejb培训笔记和源代码

    本资料集包含了ejb培训笔记和源代码,旨在帮助学习者深入理解EJB的工作原理及其在实际项目中的应用。 笔记部分可能涵盖以下关键知识点: 1. **EJB概述**:介绍EJB的历史、版本和基本概念,包括EJB 2.x和EJB 3.x的...

    EJB随堂笔记正式版(达内).rar

    - **部署描述符(Deployment Descriptor)**:这是XML格式的配置文件,用于配置EJB的行为和部署信息,如安全角色、事务属性等。 - **生命周期方法(Life Cycle Methods)**:EJB组件有自己的生命周期,包括创建、...

    EJB学习笔记.rar

    3. **分布式性**:EJB组件可以在网络中的不同节点上部署和执行,实现了分布式计算。 4. **并发控制**:EJB容器管理多个客户端对组件的并发访问,避免数据冲突。 5. **生命周期管理**:EJB容器负责Bean的创建、初始...

    EJB工作原理学习笔记

    ### EJB工作原理学习笔记 #### RMI工作原理 RMI(Remote Method Invocation)是一种用于在不同的Java虚拟机(JVMs)之间进行远程过程调用的技术。它允许开发者创建分布式应用程序,这些应用程序可以在网络的不同部分...

    EJB学习笔记

    本学习笔记将深入探讨EJB的概念、架构、类型以及如何在实际项目中应用它们。 EJB是一种服务器端的组件模型,它为开发人员提供了面向对象的方法来创建分布式的企业级应用。EJB容器负责管理组件的生命周期、提供安全...

    EJB工作原理学习笔记.pdf

    企业级Java Beans(EJB)是一种服务器端的组件模型,用于开发和部署可重用的企业级组件。它是Java平台的一部分,专门为开发分布式网络应用而设计。EJB允许开发者将业务逻辑放入独立的组件中,这些组件可以在不同的...

    达内培训的ejb课程笔记

    在"达内培训的ejb课程笔记"中,学习者可能涵盖了以下内容: 1. EJB的基础概念和架构。 2. 如何创建和部署EJB组件,包括编写bean的类、接口、XML配置文件等。 3. EJB的生命周期管理,包括实例化、初始化、激活、钝化...

    基于Weblogic 的ejb 学习笔记

    ### 基于Weblogic的EJB学习笔记详解 #### EJB基础知识概览 ##### 1. 无状态会话Bean (Stateless Session Bean) 无状态会话Bean是一种不保存客户端会话状态的EJB组件。这意味着每个客户端的请求都不依赖于前一个...

    EJB3.0 - 学习笔记

    EJB 3.0 版本引入了许多改进,简化了API,降低了学习曲线,使其更易于使用。 在MVC(模型-视图-控制器)架构中,EJB 主要用于开发业务层。它负责处理数据和业务逻辑,而视图层则展示数据,控制器则协调视图和模型...

Global site tag (gtag.js) - Google Analytics