`

EJB3 Study

阅读更多
ejb project: cust
public class StatelessCounterBean implements StatelessCounterBeanRemote, StatelessCounterBeanLocal {

    /**
     * Default constructor. 
     */
    public StatelessCounterBean() {
    }

	@Override
	public int getTheValue() {
		System.out.println("Say Hello!!");
		return 0;
	}

	@Override
	public int increment(int a, int b) {
		return a+b;
	}

	@Override
	public String sayHello() {
		return "Hello world!\n Counter Test";
	}

}


ejb-jar.xml
<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd">
  <display-name> cust </display-name>
 
  <enterprise-beans>  
  	<session>
  		<ejb-name>StatelessCounterBean</ejb-name>
  		<ejb-class>com.ibm.example.websphere.ejb3sample.counter.StatelessCounterBean</ejb-class>  
        <session-type>Stateless</session-type>  
  	</session>
  </enterprise-beans>
  
   <ejb-client-jar>custClient.jar</ejb-client-jar> 
 </ejb-jar>


ejb client project: custClient
@Local
public interface StatelessCounterBeanLocal {
	public int increment(int a, int b);
    public int getTheValue();
}

@Remote
public interface StatelessCounterBeanRemote {
	public int increment(int a, int b);
    public int getTheValue();
    public String sayHello();
}


custWeb, test the EJB project


public class CounterTest3 {
	/**
	 * @param args
	 */
	public int go(int a, int b) {
//		Properties props = new Properties();
//		props.setProperty("java.naming.factory.initial", "com.ibm.websphere.naming.WsnInitialContextFactory");
//		props.setProperty("java.naming.provider.url", "iiop://127.0.0.1:2809");
//		props.setProperty("java.naming.factory.url.pkgs", "com.ibm.ws.naming");
		InitialContext ctx;
		int result = 0;
		try {
		  //ctx = new InitialContext(props);
		  ctx = new InitialContext();
		  System.out.println("1");
		  StatelessCounterBeanRemote counter = (StatelessCounterBeanRemote) ctx.lookup("com.ibm.example.websphere.ejb3sample.counter.StatelessCounterBeanRemote");
		  //StatelessCounterBeanRemote counter = (StatelessCounterBeanRemote) ctx.lookup("StatelessCounter");//java:comp/env/StatelessCounter
			
		  System.out.println("2");
		  if (null != counter) {
			  result = counter.increment(a, b);
		  
		  } else {
		   System.out.println("lookup fail!");
		  }
		  System.out.println(result);
		  
		} catch (NamingException e) {
		  e.printStackTrace();
		}
		return result;

	}
	
	public static void main(String[] args) {
		Properties props = new Properties();
		props.setProperty("java.naming.factory.initial", "com.ibm.websphere.naming.WsnInitialContextFactory");
		props.setProperty("java.naming.provider.url", "iiop://127.0.0.1:2810");
		props.setProperty("java.naming.factory.url.pkgs", "com.ibm.ws.naming");
		InitialContext ctx;
		int result = 0;
		try {
		  ctx = new InitialContext(props);
		 
		  System.out.println("1");
		  StatelessCounterBeanRemote counter = (StatelessCounterBeanRemote) ctx.lookup("com.ibm.example.websphere.ejb3sample.counter.StatelessCounterBeanRemote");

		  System.out.println("2");
		  if (null != counter) {
			  result = counter.increment(2, 3);
		  
		  } else {
		   System.out.println("lookup fail!");
		  }
		  System.out.println(result);
		  
		} catch (NamingException e) {
		  e.printStackTrace();
		}
	}

}


test.jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><%@page
	language="java" contentType="text/html; charset=GB18030"
	pageEncoding="GB18030"%>
	<%@ page import="com.ibm.example.websphere.ejb3sample.counter.*, javax.naming.*
	, java.util.Properties, com.test.*" %>
<html>
<head>
<title>countertest2</title>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<meta name="GENERATOR"
	content="Rational® Application Developer™ for WebSphere® Software">
</head>
<body>
	<%
		out.println("StatelessCounterBeanRemote Start...<br/>");
			InitialContext ctx = new InitialContext();
			StatelessCounterBeanRemote counter = (StatelessCounterBeanRemote)ctx.lookup("com.ibm.example.websphere.ejb3sample.counter.StatelessCounterBeanRemote");
			out.println("1+5=" + counter.increment(1,5));
			out.println("<br/>StatelessCounterBeanRemote End.<br/>");
			
			CounterTest3 test = new CounterTest3();
			int result = test.go(2, 3);
			out.println("Result is: "+ result);
	%>
</body>
</html>
分享到:
评论

相关推荐

    EJB3_study

    本资料集`EJB3_study`主要围绕EJB3的核心概念、设计模式以及实际应用展开。 ### 1. EJB3的核心概念 - **实体Bean(Entity Bean)**:代表业务对象,通常与数据库中的记录对应。EJB3引入了注解驱动的实体管理,使得...

    ejb jsf 实例

    **ejb与jsf简介** EJB(Enterprise JavaBeans)是Java EE平台中用于构建企业级应用程序的核心组件。...通过ejb3Study和jsfStudy的学习,你可以深入了解这两种技术,并运用它们来开发功能丰富、高效的Web应用。

    Study EJB_Note

    3. **会话Bean**:掌握两种主要的会话Bean类型——Stateful Session Bean和Stateless Session Bean的创建与使用。这部分将探讨它们的特点、适用场景以及如何通过这些Bean来实现业务逻辑。 4. **会话Bean发布为Web...

    MZ_SCBCD_5_Study_Guide

    **知识点3:EJB编程限制** 正确与错误的EJB编程示例,包括但不限于: - 不能直接调用其他Bean的方法; - 避免在EJB方法中抛出未检查异常; - 禁止使用静态成员变量; - 不能直接访问数据库,应通过实体Bean或JPA等...

    Sun Certified Enterprise Architect for J2EE Study Guide

    3. **EJB(Enterprise JavaBeans)**:EJB是J2EE的核心组件,提供了一种规范化的开发模式,用于创建可部署在服务器上的业务逻辑组件。EJB有三种类型:Session Beans(处理客户端交互)、Message-driven Beans(处理...

    study-common.zip

    3. **JMS(Java Message Service)**:Java消息服务允许应用程序之间进行异步通信,提供了一种可靠的消息传递机制,常用于解耦系统组件。 4. **EJB(Enterprise JavaBeans)**:EJB是JavaEE中用于构建服务器端业务...

    Sun Certified Enterprise Architect for Java EE Study Guide

    《Sun Certified Enterprise Architect for Java EE Study Guide》是针对Java企业级架构师认证的一本学习指南,旨在帮助读者理解和掌握Java企业版(Java EE)的高级架构设计与开发技能。这本指南涵盖了广泛的Java EE...

    SCEA for J2EE Technology Study Guide (2002)

    **3. 第一章:什么是架构?** - **介绍** - 强调了架构的基本概念。 - **先决条件回顾** - 概述了学习本章前需要具备的基础知识。 - **讨论** - **1.1 理解架构** - 解释了架构的定义、目的及其对系统的重要性...

    SCBCD Exam Study Kit

    SCBCD Exam Study Kit Java Business Component Developer Certification for EJB.Jun.2005 sun认证材料

    study-manager.zip

    4. **EJB(Enterprise JavaBeans)**:EJB提供了一种组件模型,用于创建可部署在JavaEE服务器上的企业级组件,包括会话bean、实体bean和消息驱动bean。 5. **JMS(Java Message Service)**:JMS是Java消息服务,...

    SCWCD Exam Study Kit

    《SCWCD Exam Study Kit》是一本专门为准备Sun Certified Web Component Developer(SCWCD)认证考试的考生编写的复习资料。SCWCD是Java web开发领域的重要认证,它验证了开发者在创建Java web组件,如Servlets和JSP...

    SCEA Study Guide

    3. **企业级组件**:深入理解EJB的三种类型——会话bean、实体bean和消息驱动bean,以及它们在分布式环境中的作用。 4. **Web服务**:包括SOAP、WSDL和UDDI,以及如何使用Java API for XML Web Services (JAX-WS)和...

    j2ee study

    这篇名为“j2ee study”的学习资料可能涵盖了J2EE的基础知识、进阶概念和实战技巧。博主Tendyming在ITEYE博客上分享了他们的学习心得,这通常会包含代码示例、问题解析和项目经验。由于链接无法直接访问,我们可以...

    study_jh.rar

    它提供了开发分布式、多层应用程序所需的服务和API,支持Web服务、EJB(Enterprise JavaBeans)、Servlets、JSP(JavaServer Pages)等。J2EE的核心在于其分层架构,包括客户端层、Web层、业务逻辑层和数据访问层。...

    javastudy.zip

    3. **异常处理**:Java提供了强大的异常处理机制,通过try-catch-finally语句块来捕获和处理程序运行时可能出现的问题,确保程序的健壮性。 4. **集合框架**:Java集合框架包括接口(如List、Set、Map)和实现类...

    Java Study.pdf

    此外,EJB(Enterprise JavaBeans)提供了面向组件的分布式计算模型,学习EJB 2.x和3.0版本,同时掌握一种应用服务器的使用,如WebSphere、Weblogic、Tomcat或JBoss,这将有助于你理解Java EE的完整生态系统。...

    study-web-backend.zip

    3. **EJB(Enterprise JavaBeans)**: EJB是JavaEE的一部分,提供了服务器端组件模型,用于构建可复用的、安全的、事务性的企业级应用。EJB有三种类型:Session Beans(会话bean)处理业务逻辑,Message Driven ...

Global site tag (gtag.js) - Google Analytics