`
nenusoul
  • 浏览: 13421 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Eclipse4.2+Jboss7/Jboss-eap-6.0+EJB3.1分布式开发 第三篇

    博客分类:
  • EJB
阅读更多

第三篇(EJB Client端的开发)

  1. 建立一个Dynamic Web Project,项目名称为EJBClient。项目结构为:
  2. 还记得上一篇中给Server端的项目添加Maven支持了吗,这里就用到了。右键那个项目->run as->maven build...,run 完之后你就可以在项目根目录的target下面找到此项目打成的jar包了。 E:\project\J2EE\MyEJBServer\target\MyEJBServer-0.0.1-SNAPSHOT.jar
    [INFO] Scanning for projects...
    [INFO] ------------------------------------------------------------------------
    [INFO] Building MyEJBServer
    [INFO]    task-segment: [package]
    [INFO] ------------------------------------------------------------------------
    [INFO] [resources:resources {execution: default-resources}]
    [WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
    [INFO] Copying 1 resource
    [INFO] [compiler:compile {execution: default-compile}]
    [INFO] Nothing to compile - all classes are up to date
    [INFO] [resources:testResources {execution: default-testResources}]
    [WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
    [INFO] skip non existing resourceDirectory E:\project\J2EE\MyEJBServer\src\test\resources
    [INFO] [compiler:testCompile {execution: default-testCompile}]
    [INFO] Not compiling test sources
    [INFO] [surefire:test {execution: default-test}]
    [INFO] Tests are skipped.
    [INFO] [ejb:ejb {execution: default-ejb}]
    [INFO] Building EJB MyEJBServer-0.0.1-SNAPSHOT with EJB version 3.1
    [INFO] Building jar: E:\project\J2EE\MyEJBServer\target\MyEJBServer-0.0.1-SNAPSHOT.jar
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESSFUL
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 3 seconds
    [INFO] Finished at: Thu May 09 11:19:37 CST 2013
    [INFO] Final Memory: 11M/28M
    [INFO] ------------------------------------------------------------------------
    
  3. 把这个jar包引入到此项目的build path中
  4. 开发EJBUtil用来获取EJB
    package com.synnex.ejb.util;
    
    import java.util.Properties;
    
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
    
    public class EjbUtil {
    	private static Context initialContext;
    	
    	private static final String PKG_INTERFACES = "org.jboss.ejb.client.naming";
    	
    	private static Context getInitialContext() throws NamingException{
    		if(initialContext == null){
    			Properties prop = new Properties();
    			prop.put(Context.URL_PKG_PREFIXES, PKG_INTERFACES);
    			
    			initialContext = new InitialContext(prop);
    		}
    		
    		return initialContext;
    	}
    	
    	public static Object lookup(String jndi) throws Exception{
    		return getInitialContext().lookup(jndi);
    	}
    	
    	private static Object lookup(Class<?> serviceClass, String moduleName, String beanName) throws Exception {
            final String appName = "";			//ear包的名字,如果没有ear包,那么这个就是空字符串就行
            final String distinctName = "";
            
            final String interfaceName = serviceClass.getName();
            
            String jndi = "ejb:" + appName + "/" + moduleName + "/" + distinctName + "/" + beanName + "!" + interfaceName;
            
            System.out.println("JNDI: " + jndi);
    
    		return getInitialContext().lookup(jndi);
        }
    	
    	public static Object lookupRemoteBizService(Class<?> serviceClass, String moduleName) throws Exception{
    		String beanName = serviceClass.getSimpleName().replace("Remote", "");
    		return lookup(serviceClass, moduleName, beanName);
    	}
    }
    
     
  5. 开发Servlet用来作为程序的入口点
    package com.synnex.servlet;
    
    import java.io.IOException;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.hua.ejb.LoginBeanRemote;
    import com.synnex.ejb.util.EjbUtil;
    
    /**
     * Servlet implementation class TestRemoteEJB
     */
    @WebServlet("/TestRemoteEJB")
    public class TestRemoteEJB extends HttpServlet {
    	private static final long serialVersionUID = 1L;
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public TestRemoteEJB() {
            super();
            // TODO Auto-generated constructor stub
        }
    
    	/**
    	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		this.doPost(request, response);
    	}
    
    	/**
    	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		try {
    			LoginBeanRemote loginBean = (LoginBeanRemote)EjbUtil.lookupRemoteBizService(LoginBeanRemote.class, "MyEJBServer");
    			System.out.println(loginBean.login("ejb", "123456"));
    			System.out.println(loginBean.login("ejb", "qwerty"));
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    
    }
    
     
  6. 拷贝EJB server端程序的jar包到Client 的Jboss Server的modules下面。目录位置D:\server\jboss-eap-6.0\modules\com\huag\ejb\main,然后添加module.xml。

     
    <module xmlns="urn:jboss:module:1.1" name="com.huag.ejb">
        <resources>
            <resource-root path="MyEJBServer-0.0.1-SNAPSHOT.jar"/>
        </resources>
        <dependencies>
        </dependencies>
    </module>
  7. 为项目部署到jboss7下面,添加jboss-deployment-structure.xml,到WEB-INF下面。
    <jboss-deployment-structure>
       <deployment>
          <dependencies>
          	<module name="com.huag.ejb" />
          </dependencies>
       </deployment>
    </jboss-deployment-structure>
       
  8. 发布项目到Jboos,然后启动JBoss,看是否能够启动成功。

    下一篇为最终篇,我们将讲解Client Server的配置和展示分布式调用。

  • 大小: 24.8 KB
  • 大小: 76.9 KB
  • 大小: 73 KB
  • 大小: 36.4 KB
  • 大小: 22.4 KB
  • 大小: 21.5 KB
分享到:
评论

相关推荐

    jboss7ejb配置文件

    在JBoss 7及以上版本中,对EJB的配置过程相较于之前的版本有所变化,主要涉及到两个关键的配置文件:`jboss-ejb3.xml`和`ejb-jar.xml`。 `ejb-jar.xml`文件是EJB模块的标准配置文件,遵循Java EE规范。在这个文件中...

    JBossTools-ALL-win32-3.0.0.CR2

    JBossTools-ALL-win32-3.0.0.CR2 是一个专为Windows操作系统设计的集成开发环境(IDE)扩展包,它基于Eclipse平台,提供了丰富的工具集来支持JBoss相关技术的开发、部署和管理。这个版本是3.0.0的候选发布2(CR2),...

    jboss-eap-6.4.0.zip

    8. **Java 远程处理 EJB**:Enterprise JavaBeans (EJB) 是 Java EE 平台的核心部分,EAP 6.4 支持 EJB 3.1 规范,包括无状态会话 bean、有状态会话 bean、实体 bean 和消息驱动 bean 等。 9. **Web 服务支持**:...

    ejb-cluster-example:JBoss EJB 集群示例

    JBoss EJB 集群示例 安装 在域模式下运行干净的 JBoss EAP 6.3 ./jboss-eap-6.3/bin/domain.sh 运行安装脚本 ./jboss-eap-6.3/bin/jboss-cli.sh -c --file=setup.cli 在服务器上部署文件ejb-cluster.jar并分配给...

    jboss-eap-5.2.0.zip

    JBoss EAP(Enterprise Application Platform),是Red Hat公司开发的一款基于Java EE(现在称为Jakarta EE)的应用服务器,它为开发者提供了一个全面的框架来构建、部署和管理企业级应用程序。标题中的"jboss-eap-...

    jboss-eap-7.2.0-installer.jar

    JBoss支持EJB 1.1和EJB 2.0 EJB3.0的规范,它是一个管理EJB的容器和服务器。类似于Sun's J2SDK Enterprise Edition(J2EE),JBoss的目标是一个源代码开放的J2EE环境。但是JBoss核心服务仅是提供EJB服务器。JBoss不...

    jboss-eap-6.3.0软件和源码.zip

    JBoss EAP 6.3.0是一款基于Java的企业级应用服务器,由Red Hat公司开发并维护,是Java EE(企业版)平台的实现。它提供了全面的中间件服务,支持多种应用程序,如Web应用程序、SOA(面向服务的架构)、交易处理、...

    jboss-eap-6.2.0

    1. **Java EE 6支持**:JBoss EAP 6.2.0完全兼容Java EE 6规范,这意味着它可以支持诸如JavaServer Faces (JSF),Java Persistence API (JPA),Java Message Service (JMS)以及Enterprise JavaBeans (EJB)等关键组件...

    jboss-eap-6.3.0

    1. **Java EE 6支持**:JBoss EAP 6.3.0遵循Java Platform, Enterprise Edition (Java EE) 6标准,提供包括Servlet 3.0、JPA 2.0、EJB 3.1、JSF 2.1等在内的服务和API。 2. **模块化架构**:EAP 6.3引入了模块化...

    jboss-web-3.0.0-beta-2.zip_beta_jboss_jboss web 3.0_jboss-web

    3. **Java EE兼容性**:作为Java EE的一部分,JBoss Web支持EJB(Enterprise JavaBeans)、JMS(Java Message Service)、JTA(Java Transaction API)等服务,为开发企业级应用提供了一个全面的框架。 4. **安全...

    jboss-4.2.3.GA_下的jboss-4.2.3.GA_下的

    JBoss AS 4.2.3.GA(Application Server)是Red Hat公司开发的一款开源Java应用服务器,它基于Java EE(Enterprise Edition)5规范,提供了全面的企业级服务,包括EJB(Enterprise JavaBeans)、JMS(Java Message ...

    jboss-3.2.5.zip

    本篇文章将详细讲解"jboss-3.2.5.zip"这一版本的JBoss安装、配置及EJBCA的安装和设置过程。 一、JBoss 3.2.5简介 JBoss 3.2.5是在2004年发布的一个版本,它是Java社区的重要里程碑,为开发者提供了轻量级、开源的...

    jboss-5.0.0.GA 官方正式版

    3. **增强的EJB3支持**:JBoss 5对Java Enterprise Edition 5中的EJB3规范进行了全面支持,提供了更简单的编程模型,减少了大量XML配置,使开发过程更为简便。 4. **Web服务支持**:通过JAX-WS和JAX-RS,JBoss 5...

    JBoss_Enterprise_Application_Platform-7.0

    JBoss Enterprise Application Platform (EAP) 7.0 是一个基于Java EE 7规范的开源应用服务器,由Red Hat公司开发并维护。这个版本在Java企业级开发领域中扮演着重要角色,因为它提供了全面的框架和服务,使得开发、...

    JBoss5配置相机

    这些可以在`$JBOSS_HOME/server/default/conf/jboss-service.xml`或`standalone.xml`(如果是JBoss EAP 7及以上版本)中修改。 6. **安全管理** JBoss AS 5支持角色基访问控制(RBAC)和用户认证。在`$JBOSS_HOME/...

    Jboss环境变量

    在使用JBoss进行EJB3.0开发时,正确的环境变量配置是确保应用程序能够正确部署和运行的基础。通过上述步骤,开发者可以确保JBoss能够在预期的环境下正确工作,并且能够充分利用其提供的各种服务和技术。 #### 五、...

    jboss7正式版

    为了开始使用JBoss EAP 7.0,你需要下载压缩包"jbosseap-7.0",解压后按照官方文档的指引进行安装和配置。首先,你需要设置环境变量,然后启动服务器,接着可以通过管理控制台或CLI部署你的应用。如果遇到问题,可以...

    ejb_jboss.rar_ejb mysql_ejb_jboss_estoreW_java ejb jbo_jboss

    10. **framework**:这可能是一个框架或库的集合,可能包含自定义的组件或第三方库,用于简化开发工作。 11. **src**:源代码目录,包含了项目的Java源代码,可能包括EJB组件、DAO(数据访问对象)、业务逻辑层...

    JBOSS开发人员指南

    【JBOSS开发人员指南】 在IT行业中,JBoss是一个非常重要的开源中间件,由Red Hat公司维护,主要用于实现企业级应用服务器的功能。本指南旨在为开发者提供全面、深入的JBoss开发知识,帮助他们更好地理解和运用这个...

    jboss-jms包

    JBoss JMS(Java Message Service)是Red Hat公司开发的JMS实现,它是JBoss Application Server的一部分,提供了一个标准、可靠且面向消息的中间件服务。在分布式环境中,JMS作为异步通信的核心组件,允许应用程序...

Global site tag (gtag.js) - Google Analytics