﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-chinadave-随笔分类-CORBA相关</title><link>http://www.blogjava.net/chinadave/category/42749.html</link><description /><language>zh-cn</language><lastBuildDate>Mon, 16 Nov 2009 01:55:55 GMT</lastBuildDate><pubDate>Mon, 16 Nov 2009 01:55:55 GMT</pubDate><ttl>60</ttl><item><title>Eclipse3.2下配置ORBStudio插件的corba开发环境</title><link>http://www.blogjava.net/chinadave/archive/2009/11/16/302464.html</link><dc:creator>whoami</dc:creator><author>whoami</author><pubDate>Mon, 16 Nov 2009 01:42:00 GMT</pubDate><guid>http://www.blogjava.net/chinadave/archive/2009/11/16/302464.html</guid><wfw:comment>http://www.blogjava.net/chinadave/comments/302464.html</wfw:comment><comments>http://www.blogjava.net/chinadave/archive/2009/11/16/302464.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chinadave/comments/commentRss/302464.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chinadave/services/trackbacks/302464.html</trackback:ping><description><![CDATA[<p><font color="#0000ff" face="宋体" size="3"><font color="#ff6600" size="4">一、 使用到的软件</font><br />
1. corba产品：OpenORB<br />
下载地址：</font><a href="http://sourceforge.net/projects/openorb/"><font color="#0000ff" face="宋体" size="3">http://sourceforge.net/projects/openorb/</font></a><br />
<font color="#0000ff" face="宋体" size="3">解压后如下图所示</font></p>
<div forimg="1"><font color="#0000ff" face="宋体" size="3"><img class="blogimg" small="0" src="http://hiphotos.baidu.com/ghoul0813/pic/item/189517137bbeadf5f6039e5d.jpg" border="0"  alt="" /></font></div>
<p><br />
<br />
<font color="#0000ff" face="宋体" size="3">2. 开发工具Eclipse 3.4.2</font></p>
<p><br />
<font color="#0000ff" face="宋体" size="3">3. 插件：ORBStudio777<br />
下载地址：.</font><a href="ftp://www.orbzone.org/"><font color="#0000ff" face="宋体" size="3">ftp://www.orbzone.org</font></a><font color="#0000ff" face="宋体" size="3"> 用户名称：orbzone_downloads 密码：orbzone_downloads<br />
使用第三方Ftp工具或者迅雷的资源探测器登陆后进入CORBA_Utilities文件夹，下面有3个zip压缩文件ORBStudio 775, ORBStudio776, ORBStudio777 ，我选择了777下载。<br />
解压后如下图所示</font></p>
<p><font color="#0000ff" face="宋体" size="3"><img class="blogimg" small="0" src="http://hiphotos.baidu.com/ghoul0813/pic/item/e897a06d77627dde4216945d.jpg" border="0"  alt="" /></font></p>
<p><font color="#0000ff" face="宋体" size="3">4. Javacc<br />
下载javacc,网址：</font><a href="https://javacc.dev.java.net/"><font color="#0000ff" face="宋体" size="3">https://javacc.dev.java.net/</font></a><br />
<font color="#0000ff" face="宋体" size="3">解压后如下图所示<br />
</font></p>
<div forimg="1"><font color="#0000ff" face="宋体" size="3"><img class="blogimg" small="0" src="http://hiphotos.baidu.com/ghoul0813/pic/item/91dddb23206e5f779922ed5d.jpg" border="0"  alt="" /></font></div>
<p> </p>
<p> </p>
<p><font color="#0000ff" face="宋体" size="3"><font color="#ff6600" size="4">二、安装配置</font><br />
1. 解压OpenOrb.rar<br />
2. 解压ORBStudio777.zip，从ORBStudio/plugins/下面取得 ORBStudio_7.7.7.jar
的JAR包放到Eclipse/plugins下面.我用的Eclipse版本是Eclipse3.4.2。如果考入Jar包前以前Eclipse是运行
的请关闭，重新运行。<br />
3. 运行CMD 到DOS，再到存放javacc的bin目录，输入 javacc -tm D:\Eclipse3.22\eclipse\ORBStudio\IDLParser.jj<br />
<img class="blogimg" small="0" src="http://hiphotos.baidu.com/ghoul0813/pic/item/f75a94f7bacb5707730eec5d.jpg" border="0"  alt="" /><br />
4. 添加环境变量TCOO_HOME，值为OpenOrb目录的路径<br />
5. 启动eclipse<br />
6. windows/preferences/出现如下窗口选择ORB Studio/IDL Compiler/ 在右边选择OpenORB这里有5种编译器我们使用JacORB. 打开IDL Compiler 前面的加号选择<br />
<img class="blogimg" small="0" src="http://hiphotos.baidu.com/ghoul0813/pic/item/c37791f3f953b4ee0b46e05d.jpg" border="0"  alt="" /><br />
右边参数IDL Command： D:\ComponentTechnology\OpenOrb\OpenORB\bin\idl2java.bat<br />
Command Options: -d %D% %F% <br />
<img class="blogimg" small="0" src="http://hiphotos.baidu.com/ghoul0813/pic/item/5a81874c6b9616dcd62afc5d.jpg" border="0"  alt="" /><br />
这样就配置成功了Eclipse下面的Corba开发。Eclipse的新建选择如图：</font></p>
<p><font color="#0000ff" face="宋体" size="3"><img class="blogimg" small="0" src="http://hiphotos.baidu.com/ghoul0813/pic/item/a141ce43ab687d349213c65e.jpg" border="0"  alt="" /><br />
</font></p>
<p><font color="#0000ff" face="宋体" size="3"><font color="#ff6600" size="4">三、开发步骤参考</font><br />
1. 在eclipse里新建项目，Project lauyout 选择Create separate source and output folders</font></p>
<p><font color="#0000ff" face="宋体" size="3">2.
给新项目添加Libraries,右键Properites---&gt;Libraries---&gt;Add
Library---&gt;User Library---&gt;User
Libraries...---&gt;New...---&gt;Add JARs...<br />
找到OpenOrb\OpenORB\lib目录下openorb_orb-1.4.0.jar,openorb_orb_tools-1.4.0.jar<br />
OpenOrb\OpenORB\lib\endorsed目录下openorb_orb_omg-1.4.0.jar<br />
OpenOrb\tools\lib目录下launcher.jar,tools-1.4.0.jar<br />
OpenOrb\tools\lib\ext目录下所有.jar文件</font></p>
<p><font color="#0000ff" face="宋体" size="3">3. src上右键New---&gt;Other---&gt;CORBA Wizard---&gt;IDL files---&gt;Simple IDL</font></p>
<p><font color="#0000ff" face="宋体" size="3">4. 选择IDL文件，右键ORB Menu---&gt;Compile,就自动生成文件</font></p>
<p><font color="#0000ff" face="宋体" size="3">5.
src上右键New---&gt;Other---&gt;CORBA Wizard---&gt;Server---&gt;Active
object map---&gt;Next在弹出的对话框里IDL
filename栏选择/{projectName}/src/{IDLname}.idl<br />
&nbsp;&nbsp;&nbsp;  Interface栏选择IDL文件里定义的接口名<br />
&nbsp;&nbsp;&nbsp;  Package栏里填写包名<br />
&nbsp;&nbsp;&nbsp;  Server classname栏里填写服务端类名<br />
---&gt;Next 在弹出的对话框,选中Create server class:项</font></p>
<p><font color="#0000ff" face="宋体" size="3">6. 为生成的服务端类添加未实现的方法,并填写方法体</font></p>
<p><font color="#0000ff" face="宋体" size="3">7. src
上右键New---&gt;Other---&gt;CORBA Wizard---&gt;Client---&gt;Simple
implementation 在弹出的对话框里IDL filename栏选择/{projectName}/src/{IDLname}.idl<br />
&nbsp;&nbsp;&nbsp;  Interface栏选择IDL文件里定义的接口名<br />
&nbsp;&nbsp;&nbsp;  Package栏里填写包名<br />
&nbsp;&nbsp;&nbsp;  Client classname栏里填写客户端类名</font></p>
<p><font color="#0000ff" face="宋体" size="3">8. 在客户端类的main方法里，取消注释test.getORBInterface().operation1("A message in the bottle..."); 并修改传递的String内容</font></p>
<p><font color="#0000ff" face="宋体" size="3">9. 运行服务端程序Server_AOM.java，然后运行客户端程序MyServiceClientImpl.java</font></p>
<p><font color="#339966" face="宋体" size="3">如果，你要将你的程序包发布到别的机器上，就要用到名称服务，使用名称服务，我们需要在java代码上作些修改：</font></p>
<p><font color="#339966" face="宋体" size="3">使用名称空间的配置：</font></p>
<p><font color="#339966" face="宋体" size="3">1. 找到并注释服务端Server_AOM.java里main方法的下列代码：</font></p>
<p><font color="#339966" face="宋体" size="3">PrintWriter ps = new PrintWriter(new FileOutputStream(new File("server.ior")));<br />
ps.println(orb.object_to_string(obj));<br />
ps.close();</font></p>
<p><font color="#339966" face="宋体" size="3">取消下列代码（位置在上面代码的上方）的注释：</font></p>
<p><font color="#339966" face="宋体" size="3">// org.omg.CORBA.Object ncobj = orb.resolve_initial_references("NameService");<br />
// NamingContextExt nc = NamingContextExtHelper.narrow(ncobj);<br />
// nc.bind(nc.to_name("MyServerObject"), obj);</font></p>
<p><font color="#339966" face="宋体" size="3">修改bind方法为rebind，并引入新的类</font></p>
<p><br />
<font color="#339966" face="宋体" size="3">2. 找到并注释客户端MyServiceClientImpl.java里main方法的下列代码：</font></p>
<p><font color="#339966" face="宋体" size="3">LineNumberReader input = new LineNumberReader(new FileReader("server.ior"));<br />
String ior = input.readLine();<br />
org.omg.CORBA.Object obj = orb.string_to_object(ior);</font></p>
<p><font color="#339966" face="宋体" size="3">取消下列代码（位置在上面代码的上方）的注释：</font></p>
<p><font color="#339966" face="宋体" size="3">// org.omg.CORBA.Object ncobj = orb.resolve_initial_references("NameService");<br />
// NamingContextExt nc = NamingContextExtHelper.narrow(ncobj);<br />
// org.omg.CORBA.Object obj = nc.resolve_str("MyServerObject");</font></p>
<p><font color="#339966" face="宋体" size="3">引入新的类</font></p>
<p><font color="#339966" face="宋体" size="3">修改org.omg.CORBA.Object ncobj = orb.resolve_initial_references("NameService");里面的参数，服务端Server_AOM.java也要改。</font></p>
<p><font color="#339966" face="宋体" size="3">改为"corbaloc::1.2@hostname:portNumber/NameService"</font></p>
<p><font color="#339966" face="宋体" size="3">修改resolve_initial_references方法为string_to_object</font></p>
<p><font color="#339966" face="宋体" size="3">修改所有异常为Exception</font></p>
<p><br />
<font color="#339966" face="宋体" size="3">3. 用命令行的方式，在OpenOrb\NamingService\bin目录下执行ins -ORBPort=portNumber</font></p>
<p><br />
<font color="#339966" face="宋体" size="3">4. 带参数 -ORBInitRef NameService=corbaloc::1.2@hostname:portNumber/NameService 运行服务端Server_AOM.java，</font></p>
<p><br />
<font color="#339966" face="宋体" size="3">5. 然后运行客户端程序MyServiceClientImpl.java，结果是一样的。</font></p>
<p><font color="#339966" face="宋体" size="3">目前为止，corba的本地、远程开发都已经配置完毕。</font></p>
<img src ="http://www.blogjava.net/chinadave/aggbug/302464.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chinadave/" target="_blank">whoami</a> 2009-11-16 09:42 <a href="http://www.blogjava.net/chinadave/archive/2009/11/16/302464.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>