软件构件与中间件技术 实验指导书

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在机器 A 上打开一个 DOS 窗口,运行服务器:
现在在机器 B 上运行客户端:
9
至此,我们已经成功地完成了系统的开发和测试。请回答下面问题: (一) 假定使用 JDK1.6,编译 idl 文件的命令是什么? (二) 编译后,产生了哪几个文件?简要说明生成的各个 Java 类的作用。尤其是,客户
端的 码根和服务器端的框架是哪个类。 (三) Idl 文件中的 BAPkg 模块映射成了什么? (四) 实现远程对象要注意什么问题 பைடு நூலகம் (五) 实现服务器端的步骤是什 么? (六) 实现客户端的步骤是什 么? (七) 运行服务器和客户程序的命令是什么? (八) 谈一谈你对 Java CORBA 的认识。
"1050"); ORB orb = ORB.init(args, env);
org.omg.CORBA.Object temp;
7
temp
=
orb.resolve_initial_references("NameService");
NamingContextExt node = NamingContextExtHelper.narrow(temp);
"1050")
; ORB orb = ORB.init(args, env);
org.omg.CORBA.Object temp;
temp
=
orb.resolve_initial_references("RootPOA");
POA poa = POAHelper.narrow(temp);
poa.the_POAManager().activate();
在“包名”一栏中,输入包名。这里是 DBPkg。点击“完成”,进入 下图:
46
右击“DBPkg”,选择”新建→通过数据库生成实体类“,进入 下图 :
在 JNDI 名称中,输入一个新的 JNDI 名称。这个 JNDI 名称用于保存和 检索刚刚建立 的数据源。所有的资源都必须在 JNDI 命名目录服务中
temp = node.resolve_str("Basic Arithmetic");
BAInterface
ro
=
BAInterfaceHelper.narrow(temp); int a=30,b=20;
_BAResultHolder
result
=
new
_BAResultHolder(); ro.BACalculation(a, b,
44
如果插入的 SQL 语句没有错误,这行记录应该被正确地插入到 person 表单中。执行的结果见下图:
重复以上步骤插入多行数据。在以上 SQL 语句编辑框中输入 select 语 句,可显示你刚 刚插入的所有记录。见下图:
45
3、 开发服务器 EJB 点击“MyExp3-ejb”,右击展开后的节点“源包”,选择“新建→Java 包”,进入以 下界面:
14
点击上图中的数据库,得到下面的界面:
15
在上图中,右击 Java DB, 选择“创建新数据库”,进入下图:
在数据库名称中输入你的新数据库名称,这里是 mydatabase,在用户 名和口令二栏中输 入你的用户名和口令,这里分别是 hanwudadi 和 hanwudadi 。 所 创 建 的 数 据 库 位 于 C:\Document and Settings\Administrator\.netbean-derby。点击确定,进入下图:
_BAResult res = new _BAResult(); res.sum=a+b; res.minus=a-b; res.product=a*b; if(b!=0)res.quotient=a/b; else throw new ZeroDivisorException("zero divisor"); result.value=res; } } 五、编写服务器。注意要把 IP 地址换成当前这台物理机器的 IP 地址。打开记事本, 复制以 下代码。文件名:Server.java。保存到文件夹 F:\MD_Exp1\BAPkg 之下。
令 java – version验证是否已经正确地安装了JDK。见下图:
2
二、打开一个文本编辑器,编写以下 IDL 接口定义文件,并命名为 BA.idl,保存到一个 文件 夹下,这里是 F:\MD_Exp1。见下面代码: module BAPkg { typedef struct _BAResult { long sum; long minus; long product; long quotient; }BAResult; exception ZeroDivisorException{}; interface BAInterface { void BACalculation(in long a, in long b, out BAResult result) raises (ZeroDivisorException); }; }; 三、编译 IDL 文件。
result);
_BAResult
res
=
result.value;
System.out.println("sum = "+res.sum+"\n" +
"minus = "+res.minus+"\n"+
"product
=
"+res.product+"\n"+ "quotient
= "+res.quotient);
11
选择 JavaEE→企业应用程序,点击下一步。进入下个界面:
在项目名称一栏中,输入你的项目名称。这里是 MyExp3,点击下一步, 进入下图:
12
在服务器一栏中选择 GlassFishV2, 只选择创建 EJB 模块,点击完成。 最终界面见下 图:
13
2、创建数据库表单并插入数据 在上图中点击服务,得到下面的界面:
4
import Component; import org.omg.PortableServer.POA; import org.omg.PortableServer.POAHelper;
5
import
java.util.Properties;
public class Server {
[HANWUDADI
hanwudadi]”,选择“执行命令”,进入编辑 SQL 语句的界面:
上的
输入以下 SQL 语句: insert into person values ('张三', '15372546789', 'zhangsan@sina,com', '7893256') 点击“运行 SQL”。此命令的按钮见下面的截图:
47
进行检索。在数据库连接一栏中,选择 “jdbc:derby://localhost:1527/mydatabase [HANWUDADI 上 的 hanwudadi]”,然后点 击“确定“进入下一个界面:
NamingContextExt node = NamingContextExtHelper.narrow(temp);
NameComponent[] path = node.to_name("Basic Arithmetic");
node.rebind(path, ro);
System.out.println("Server is running.......");
2015-2016 第二学期 《软件构件与中间件技术》实验指导书
石兵 二〇一六年四月二十九日
1
任课老师:石兵 年级:软件1301-02 地点:签主十楼学院机房
软件构件与中间件技术实验指导书
实验一:基于 JAVA CORBA 的四则运算分布式系统开发 开发工具:JDK1.6
实验步骤: 一、安装 JDK1.6 并配置系统参数 PATH 和 CLASSPATH,打开一个 DOS 窗口键入命
orb.run();
}catch(Exception ex){} } }
六、编写客户端。注意要把 IP 地址换成当前这台物理机器的 IP 地址。打开记事本, 复制以 下代码。文件名:Client.java。保存到文件夹 F:\MD_Exp1\BAPkg 之下。 package BAPkg; import org.omg.CORBA.ORB; import org.omg.CORBA.Object; import org.omg.CosNaming.NamingContextExt; import org.omg.CosNaming.NamingContextExtHelper; import java.util.Properties; public class Client {
6
public static void main(String[] args)
{
try
{ Properties
env
=
new
Properties();
env.setProperty("org.omg.CORBA.ORBInitialHost",
"127.0.0.1");
env.setProperty("org.omg.CORBA.ORBInitialPort",
40
右击蓝色项,选择“连接”,进入以下界面:
41
右击“表”,选择“创建新表”,进入下图:
42
我们创建一个名为 person 的数据库表单,共有四个字段:name, phone, email 和 qq。点击确定 ,进入下图:
43
右 击 “jdbc:derby://localhost:1527/mydatabase
}catch(Exception ex){} } } 七、编译 JAVA 源代码。如下图。
如编译正确,应产生所有字节码文件。见下图。
8
八、系统布置。刚才是在机器 A 上开发的,机器 A 是服务器,IP 地址是机器 A 的 IP 地址。 现在,在另一台机器,机器 B 上安装 JDK1.6 并配置 PATH 和 CLASSPATH 系 统参数,并把代码 及字节码打包复制到机器 B 上,它是一个客户端。 九、运行系统。 在机器 A 上打开一个 DOS 窗口,运行 JAVA CORBA 命名目录服务器,见下图:
10
实验二:基于 J2EE 的Web服务开发 班级:软件1301-02 任课老师:石兵 开发工具: JDK1.6, 支持 J2EE 的 NetBean6.5 和内置数据库 Java DB 实验步骤: 一、 安装 JDK1.6 和支持 J2EE 的 NetBean6.5 并配置系统参数 Path, Classpath 和 JAVA_HOME 二、 开发步骤 1、 创建一个企业级应用,见下图:
public static void main(String[] args)
{
try
{ Properties
env
=
new
Properties();
env.setProperty("org.omg.CORBA.ORBInitialHost",
"127.0.0.1")
;
env.setProperty("org.omg.CORBA.ORBInitialPort",
package BAPkg; import org.omg.CORBA.ORB; import org.omg.CORBA.Object; import org.omg.CosNaming.NamingContextExt; import org.omg.CosNaming.NamingContextExtHelper;
BAImpl servant = new BAImpl();
temp = poa.servant_to_reference(servant);
BAInterface ro = BAInterfaceHelper.narrow(temp);
temp
=
orb.resolve_initial_references("NameService");
输入以下命令 idlj –fall BA.idl 编译 IDL 文件。所派生的文件见下图:
3
四、实现远程对象。打开记事本,复制以下代码。文件名:BAImpl.java。保存到文 件夹 F:\MD_Exp1\BAPkg 之下。 package BAPkg; public class BAImpl extends BAInterfacePOA { public void BACalculation (int a, int b, _BAResultHolder result) throws ZeroDivisorException {
相关文档
最新文档