--------------------------------------------------------------------------------
好喜爱学习网 HaoXiAi.Net 分类:编程语言 java教程 来源:网络收集 录入:管理员
--------------------------------------------------------------------------------

JSSE访问带有未验证证书的HTTPS摘要JSSE是一个SSL和TLS的纯Java实现,通过JSSE可以很Jcrontab - java定时程序进阶学习初学Jcrontab感觉非常好,用它来做一个定时程序非常容易,而且方制作Windows mobile下软件安装包在windowsmobile开发嵌入式软件,不论是j2me,还是其它开发第一个J2EE、配置J2EE环境及Cloudscape数据库开发第一个J2EE、配置J2EE环境及Cloudscape数据库【编EJB-Java服务器端构件模型使用入门(2)

3. EJB开发
   下面我们以一个简单实例的开发来说明EJB开发过程,第一次接触确实感觉很复杂,但实际上,只要参照分布式开发系统的统一原则就可以很快接受这种开发模式了。
   分布式开发的原则如下:
   · 定制接口;
   · 接口的实现(对象的实现);
   · 发布接口

   对应着EJB开发,分别是:
   · 定义EJB Remote Interface
   · 定义EJB需要的create、remove、find等Home Interface
   · 使用EJB class实现EJB Remote Interface
   · 实现EJB Home Interface
   · 使用ejb-jar.xml配置发布信息

A. 编写Remote Interface
import javax.ejb.EJBObject;
import java.rmi.RemoteException;
public interface Converter extends EJBObject {
public double DollarToRMB(double dollars) throws RemoteException;
public double RMBToDollar(double RMB) throws RemoteException;
}

注意:继承的是EJBObject。
生成Converter.java。

B. 编写Home Interface
import javax.io.Serializable;
import java.rmi.RemoteException;
import javax.ejb.CreateException;
import javax.ejb.EJBHome;
public interface ConverterHome extends EJBHome {
Converter create() throws RemoteExceptoin, CreateException;
}

注意:继承的是EJBHome。
生成ConverterHome.java。

C. 编写Enterprise Bean Class
import java.rmi.RemoteException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
public class ConverterEJB implements SessionBean {
public double DollarToRMB(double dollars) {
return dollar*8.6000;
}
public double RMBToDollar(double RMB) {
return RMB/8.6000;
}
public ConverterEJB( ) { }
public void ejbCreate( ) { }
public void ejbRemove( ) { }
public void ejbActivate( ) { }
public void ejbPassivate( ) { }
public void setSessionContext(SessonContext sc) { }
}
生成ConverterEJB.java。

A. 编译EJB源代码
UNIX:
1. compileEJB.sh (将<J2EE_DIR>改成J2EE SDK的安装目录)
#!/bin/sh
J2EE_HOME=<J2EE_DIR>
EEPATH=.:$J2EE_HOME/lib/j2ee.jar
javac -classpath "$EEPATH" ConverterEJB.java ConverterHome.java Converter.java
2. 执行compileEJB.sh

Windows:
1. compileEJB.bat (将<J2EE_DIR>改成J2EE SDK的安装目录)
set J2EE_HOME=<J2EE_DIR>
set EEPATH=.;%J2EE_HOME%/lib/j2ee.jar
javac -classpath %EEPATH% ConverterEJB.java ConverterHome.java Converter.java
2. 执行compileEJB.bat

   EJB的编码已经结束,下面是比较复杂的发布过程。只需按照提示一步一步就能够发布您的第一个EJB应用了。由于EJB不能直接发布,必须通过创建应用并加入我们已经写好的EJB,然后发布应用才能真正执行。

A. 创建J2EE应用
   EJB不能直接部署到J2EE Server上, 它必须先被增加,再被部署到一个J2EE应用上. 现在创建一个J2EE应用ConverterApp,并将它保存为文件ConverterApp.ear中.

1.在命令行方式启动J2EE Server:
j2ee -verbose
2.在另外一个终端窗口,运行应用部署工具(Application Deployment Tool):
deploytool
3.创建一个新的J2EE应用
a.在应用部署工具中选择"File"菜单
b.从"File"菜单中选择"New Application"
c.点击"Brows"
d.在文件选择中,定位你要放置ConverterApp.ear的目录
e.输入文件名为:"ConverterApp.ear"
f.点击"New Application"
g.点击"Ok"

A. EJB打包
使用应用部署工具的"New Enterprise Bean Wizard"做以下工作:
   · 创建EJB的部署描述器(descriptor)
   · 将EJB的部署描述器和class类文件打包到一个EJB.jar文件中
   · 将EJB.jar文件插入到ConverterApp.ear应用文件中
在"File"菜单中选择"New Enterprise Bean", Wizard显示以下对话框:
   · Introduction对话框
   1. 阅读Wizard主要特性的说明
   2. 点击Next
   · EJB JAR对话框
   1. 在"Enterprise bean will go in"选框中,选定ConverterApp
   2. 在JAR Display Name区中, 输入ConverterJAR, 它将代表包含bean的EJB.jar文件被显示在树视图中
   3. 点击Add按钮, 再到Content文本域中
   4. 在"Add Content to JAR"对话框中, 选择包含".class"文件的目录
   5. 在文本框中选定以下文件并点击Add Converter.class, ConverterEJB.class, ConverterHome.class
   6. 点击OK
   7. 点击Next
   · General对话框

   1. 在"Enterprise Bean Class"选框中, 选定ConverterEJB
   2. 在"Home Interface"选框中, 选定ConverterHome
   3. 在"Remote Interface"选框中, 选定Converter
   4. 选定Session单选按钮
   5. 选定Stateless单选按钮
   6. 在"Enterprise Bean Name"框中, 输入ConverterBean, 这个名字将代表这个Enterprise Bean显示在树视图中
   7. 点击Next

   · Enviroment Entries对话框
   因为你可以跳过剩余的对话框, 所以在这里点击Finish

A. 部署J2EE应用
   指定EJB的JNDI名字
   1. 在应用部署工具的树视图中选定ConverterApp
   2. 选定JNDI名字标签
   3. 在JNDI名字域中,输入MyConverter. 客户端将利用这个名字来定位Home接口
   部署J2EE应用
   1. 从Tools菜单中, 选择Deploy Application
   2. 在第一个对话框中,确定目标服务器是"localhost"或是运行J2EE Server的主机.
   3. 选定"Return Client Jar."选框
   4. 在接下来的文本框中, 输入ConverterAppClient.jar的全路径名. 这个文件将位于安装J2EE SDK的 doc/guides/ejb/examples/converter子目录下.
   5. 点击Next
   6. 在第二个对话框中, 确定ConverterBean的JNDI名是MyConverter
   7. 点击Next
   8. 在第三个对话框中, 点击Finish.
   9. 部署完毕后, 在Deployment Progress对话框中, 点击OK

4. 搭建客户端
   编写客户端代码,需要完成以下功能:
   · 定位Home接口
   · 创建EJB实例
   · 调用业务方法

代码如下:
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.rmi.RortableRemoteObject;
import Converter;
import ConverterHome;
public class ConvertClient {
public static void main(String[] argv) {
try{
Context initial = new InitialContext();
Object objref = initial.lookup("MyConverter");
ConverterHome home =
(ConverterHome)PortableRemoteObject.narrow(objref,
ConverterHome.class);
Converter currencyConverter = home.create( );

double amount = currencyConverter.DollarToRMB(100.00);
System.out.println(String.valueOf(amount));
amount = currencyConverter.RMBToDollar(100.00);
System.out.println(String.valueOf(amount));
currencyConverter.remove();
}
catch (Exception e)
{
System.err.println("Caught an unexcepted exception!");
ex.printStackTrace();
}
}
}

A. 编译客户端代码
UNIX:
1.compileClient.sh
#!/bin/sh
J2EE_HOME=<J2EE_DIR>
EEPATH=.:$J2EE_HOME/lib/j2ee.jar
javac -classpath "$EEPATH" ConverterClienter.java
2.执行compileClient.sh

Windows:
1.compileClient.bat
set J2EE_HOME=<J2EE_DIR>
set EEPATH=.;%J2EE_HOME%/lib/j2ee.jar
javac -classpath %EEPATH$ ConverterClienter.java
2.执行CompileClient.bat

A. 运行客户端
   运行客户端需要ConverterAppClient.jar文件, 这个文件包含一个桩类, 它允许客户端与运行在EJB容器中的EJB实例通信.
UNIX:
1.testClient.sh
#!/bin/sh
J2EE_HOME=<J2EE_DIR>
EEPATH=$J2EE_HOME/lib/j2ee.jar:ConverterAppClient.jar:.
java -classpath "EEPATH" ConvererClient
2.运行testClient.sh

Windows:
1.testClient.bat
set J2EE_HOME=<J2EE_DIR>
set EEPATH=%J2EE_HOME%/lib/j2ee.jar;ConverterAppClient.jar;.
java -classpath %EEPATH% ConverterClient
2.运行testClient.bat

   最激动人心的时刻到了,现在你可以看到你编写的第一个EJB应用在运行了。(有问题,哦,麻烦你按照标准流程再核对一遍;如果一切都对,那么麻烦你检查一下你的J2EE环境。如果没有,请去替换www.sun.com下载。)

5. 参考资料
Mastering Enterprise JavaBeans
and the Java2 Enterprise Edition
----Ed Roman
The Java 2 Enterprise Edition Developer´s Guider
----SUN microsystem
Enterprise JavaBeans Specification
----SUN microsystem

(全文完)
文章来自: 好喜爱学习网(http://www.haoxiai.net) 网址:http://www.haoxiai.net/bianchengyuyan/javajiaocheng/14750.html

EJB-Java服务器端构件模型使用入门(2)相关推荐

  1. Java 中的 XML:Java 文档模型的用法

    Java 中的 XML:Java 文档模型的用法 英文原文 内容: 代码对比 DOM JDOM dom4j Electric XML XPP 结束语 下一次... 参考资料 关于作者 对本文的评价 相 ...

  2. Java零基础并发编程入门

    Java零基础并发编程入门 并发编程主要包括: 线程,同步,future,锁,fork/join, volatile,信号量,cas(原子性,可见性,顺序一致性),临界性,分布式 了解基础: JMM: ...

  3. OSGI(面向Java的动态模型系统)和它的实现Equinox

    equinox  报错 英 ['ikwnks; 'ekw-] 美 ['ikwnɑks] 全球发音 跟读 口语练习 n. 春分:秋分:昼夜平分点 OSGi(Open Service Gateway In ...

  4. Java 三种模型,四种策略

    Java 三种模型,四种策略 (转) 混淆事务模型与事务策略是一个常见的错误.本系列关于 事务策略 的第二篇文章将概述 Java™ 平台支持的三种事务模型,并介绍使用这些模型的四种主要事务策略.通过使 ...

  5. Scala进阶之路-并发编程模型Akka入门篇

    Scala进阶之路-并发编程模型Akka入门篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Akka Actor介绍 1>.Akka介绍 写并发程序很难.程序员不得不处 ...

  6. Java程序员Go语言入门简介

    引用:Java程序员Go语言入门简介 为什么是 Go 语言 类 C 的语法,这意味着 Java.C#.JavaScript 程序员能很快的上手 有自己的垃圾回收机制 跨平台.编译即可执行无需安装依赖环 ...

  7. 软件测试学java,软件测试学习Java的内存模型

    原标题:软件测试学习Java的内存模型 软件测试学习Java的内存模型 主内存与工作内存 定义程序中各个变量的访问规则. 规定JVM必须遵循的最小保证. 定义操作的偏序关系.Happens-Befor ...

  8. java json数据输出,java服务器端输出JSON格式数据

    java服务器端输出JSON格式数据 本文我们讨论如何在服务器端输出 JSON 格式的数据.以 Java 为例,我们将演示将一个 Java 对象编码为 JSON 格式的文本. 将 String 对象编 ...

  9. 【Android 内存优化】Java 内存模型 ( Java 虚拟机内存模型 | 线程私有区 | 共享数据区 | 内存回收算法 | 引用计数 | 可达性分析 )

    文章目录 一. Java 虚拟机内存模型 二. 程序计数器 ( 线程私有区 ) 三. 虚拟机栈 ( 线程私有区 ) 四. 本地方法栈 ( 线程私有区 ) 五. 方法区 ( 共享数据区 ) 1. 方法区 ...

最新文章

  1. Powershell管理系列(八)Exchange 2013通讯组管理
  2. 用于高亮反光零件缺陷的自动视觉检测系统
  3. Java,Math类中的ceil、floor和round函数源码解析以及自己重写实现
  4. kettle 空字符串 null问题解决
  5. Jmeter生成html格式测试报告
  6. Bootstrap3 按钮状态提示
  7. 如何进行需求优先级管理?
  8. ML.NET 1.0 发布,单击右键即可添加机器学习模型
  9. 【计算机网络】—什么是蜂窝移动网络?
  10. 旋动机器人_旋转跳跃还会搬砖 这款机器人简直逆天
  11. PHP中explode和implode的区别
  12. SDN实验(四)——Learning Switch自学习交换机
  13. 基于python的百度云网盘资源搜索引擎设计架构
  14. 收录Google公益广告的答案
  15. 天空卫士亮相2021北京网络安全大会
  16. MySQL开发规范[转自网络]
  17. xshell使用技巧小节
  18. -moz-max-content使用
  19. 开发小程序需要的一些安装工具
  20. 百度舆情平台助力政府企业高效应对舆情

热门文章

  1. linux 命令 读phy_CentOS教程(七)- 常用命令使用介绍(上)
  2. sar极化想干矩阵_用于PolSAR图像分类的极化卷积网络
  3. js php 正则差别,正则表达式(括号)、[中括号]、{大括号}的区别小结,正则表达式小结...
  4. html显示数据库表格asp,ASP实现在WEB中显示电子表格数据 显示数据及生成HTML表格...
  5. 计算机的桌面图标类型,给“我的电脑”翻身 另类桌面图标排列
  6. 【c语言】求两数之和
  7. java全能速查宝典.chm_Java API 快速速查宝典
  8. python怎么输出文本_python输出语句怎么用
  9. 隐私全无!错发1700多条Alexa录音,上报后亚马逊淡定回应是“个人错误”
  10. nodejs实现微信授权登录