﻿<?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-JFire-文章分类-EJB</title><link>http://www.blogjava.net/JFire/category/35860.html</link><description /><language>zh-cn</language><lastBuildDate>Sun, 09 Nov 2008 20:24:35 GMT</lastBuildDate><pubDate>Sun, 09 Nov 2008 20:24:35 GMT</pubDate><ttl>60</ttl><item><title>Java Application 客户端访问ejb</title><link>http://www.blogjava.net/JFire/articles/239557.html</link><dc:creator>avJFire</dc:creator><author>avJFire</author><pubDate>Sun, 09 Nov 2008 13:44:00 GMT</pubDate><guid>http://www.blogjava.net/JFire/articles/239557.html</guid><wfw:comment>http://www.blogjava.net/JFire/comments/239557.html</wfw:comment><comments>http://www.blogjava.net/JFire/articles/239557.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/JFire/comments/commentRss/239557.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/JFire/services/trackbacks/239557.html</trackback:ping><description><![CDATA[<p style="font-size: 12pt">&nbsp;&nbsp; <span style="font-size: 10pt">EJB中的sessionbean可以对外提供Remote接口供远程客户端调用.其客户端可以是servlet,java application,或EJB.下面我跟大家分享如何在java application中远程调用session bean.我的配置环境如下。<br />
Sessionbean:运行在websphere v6.0 中，其jndi名为"Hello"<br />
Java Application: 使用eclipse IDE 创建。<br />
&nbsp;&nbsp; 首先，要对eclipse进行配置。必须与服务器 websphere使用相同的JRE.在eclipse菜单栏中选择Window,Preferences,在弹出窗口的左边选择Java,Installed JREs.默认地，右边窗口现示安装了jre1.5.0.0_07(具体版本可能有所不同)。我们需要把它换成websphere的JRE.把jre1.5.0.0_07前面的勾去掉，点击add.在弹出窗口的第三行:JRE home directory 选择Browse....JRE的路径为C:\Program Files\IBM\Rational\SDP\6.0\runtimes\base_v6\java\jre。如果你没有安装RAD,就需要到网上下载一个JRE.一直点击OK退回eclipse主界面。<br />
&nbsp;&nbsp; 其次，要向工程添加必要的JAR。右击工程，选择Properties-Java Build Path-Add Extenal JARs。添加如下的Jar:wssec.jar,naming.jar,namingclient.jar,sas.jar,ecutils.jar,websphere.jar。这些jar都可以在C:\Program Fires\Rational\SDP\6.0\runtimes\base_v6\lib目录下找到。<br />
&nbsp;&nbsp; 接着我门要把sessionbean&#8216;Hello&#8217;的home和remote接口的.class文件拷被到eclipse的工程中，使得我们在工程中可以引用它。<br />
&nbsp;&nbsp; 具体程序如下：<br />
public class Test{<br />
&nbsp;public static void main(String[] args) throws NamingException,<br />
&nbsp;&nbsp;&nbsp;RemoteException, CreateException {<br />
&nbsp;&nbsp;Properties properties = System.getProperties();<br />
&nbsp;&nbsp;//因为客户端和sessionbean不是运行在同一服务器上，需要对properties进行配置。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //如果不是在同一台电脑上运行localhost需改为服务器的ip地址或主机名<br />
&nbsp;&nbsp;//900是服务器端口，默认值可能是900或2809<br />
&nbsp;&nbsp;properties.put(Context.PROVIDER_URL, "iiop://localhost:900");<br />
&nbsp;&nbsp;properties.put(Context.INITIAL_CONTEXT_FACTORY,<br />
&nbsp;&nbsp;&nbsp;&nbsp;"com.ibm.websphere.naming.WsnInitialContextFactory");<br />
&nbsp;&nbsp;Context ctx = new InitialContext(properties);<br />
&nbsp;&nbsp;Object obj = ctx.lookup("Hello");<br />
&nbsp;&nbsp;HelloHome ejbHome = (HelloHome) javax.rmi.PortableRemoteObject<br />
&nbsp;&nbsp;&nbsp;&nbsp;.narrow(obj, HelloHome.class);<br />
&nbsp;&nbsp;Hello hello= ejbHome.create();<br />
&nbsp;&nbsp;//现在我们取得了所需要的hello对象<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br />
}&nbsp;&nbsp; </span></p>
 <img src ="http://www.blogjava.net/JFire/aggbug/239557.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/JFire/" target="_blank">avJFire</a> 2008-11-09 21:44 <a href="http://www.blogjava.net/JFire/articles/239557.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>