• 2004-05-25

    恶斗EJB(三)

    Tag:向上走

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://www.blogbus.com/dreamhead-logs/191099.html

    一切都结束了吗?别急,刚到再接再厉的好时候,难道你不觉得有了IP,再有个端口就更好了吗?遗憾的是,文档没有给我们答案。
    以前面的结果为契机,我们继续向前。
    端口常与IP齐舞,那我们就从“org.omg.CORBA.ORBInitialHost”出发。既然它能起作用,显然代码里应该有这个字符串,搜!
    不出所料,在它身边,“org.omg.CORBA.ORBInitialPort”出现了。
    在代码中再加一段:
        System.setProperty("org.omg.CORBA.ORBInitialPort", "1050");
    如果测试的话,使用1050和没使用几乎没什么区别,因为它是缺省端口。改一下容易,但也要同时改了server的端口,才能验证我们的想法。
    有了前面的探索,找到server的配置简单许多。最终我将目标锁定在config/orb.properties上。一个port和一个host。改动port,重新启动server,从打印出来的信息,我确信自己的改动是成功的。
    client,跑!OK!

    port我们已经知道了用途,但那个host呢?难道启动还能绑到别人的IP不成。强烈的好奇心让我暂时偏移了原来的轨道,改动IP,没什么,它依然能够启动,关了吧!
    发现问题了!
    关掉的不是这台机器的server,而是由host指定的那台机器上的server,原来它是干这个的。

    回到原来的路上。
    这里已经有了IP和端口,在Context.PROVIDER_URL中指定的URL也涉及到IP和端口,意义何在呢?
    删了它,试一下。代码居然仍然运行良好。

    再来看一下HelloWorldAppClient.jar,把它加入classpath之后,我们几乎忘了它的存在。
    在J2EE Tutorial中,HelloWorldClient也被打到了这个JAR文件中,我们自己编写就是一个client,那么这个client有作用是什么呢?事实证明,它是标准的托,没用,删了它对大局无碍。
    现在看看HelloWorldAppClient.jar,只有与EJB紧密关联的类,清净不少啊!

    还有什么问题呢?
    还记得我们在开始的时候,将引用名称改成了JNDI名称吧!
    我想把它改回来。
    同样以异常起步,寻着调用逆流而上,一步一步解决出现的问题。
    对比直接用runclient运行,很容易就可以找到二者的差异,大踏步向前。
    runclient其实只是一个批处理文件,其中我最核心的一句简化一下就是下面这个样子:
    %JAVA_COMMAND% com.sun.enterprise.appclient.Main %*
    %JAVA_COMMAND%就相当于我们常用的java命令,那实际上这一句就是运行com.sun.enterprise.appclient.Main。
    同直接运行相比,二者之间的差别肯定是runclient在前期设置了一些东西,才使得代码最终可以运行良好,所以,直接调用就需要自己完成这一些设置的工作。

    当我在代码中加入一些新的代码后,我决定放弃。
    并非问题无法解决,而是从差别中查找出来的一些设置方法同J2EE RI中的一些类紧密关联在一起。如果说前面设置属性的方式是我可以接受的,那么这里就完全破坏代码中的那种美感。这样,即便最终可以完成,那也已经失去应有的意义。

    想来,我最初“调用远程EJB”的目的已经达到了,而在我将来的代码会运行在应用服务器上,这些设置工作应用服务器可以替我很好的完成,我也就不必理会了。

    最后,我要告诫一下对有兴趣尝试一下的朋友,前面所有的代码都是在J2EE RI上完成的,具体的应用服务器之间还是有差别的。
    好了,一场恶斗就此结束。

    分享到:

    历史上的今天:

    人多与人少 2006-05-25
    引用地址:

    评论

  • 我都看不懂你说了些什么,但很明显这是高手间的谈话。我只有仰望的份了。现在我正想参加一个培训。但不知道是选择ACCP还是NIIT?我想你应该知道他们的区别。我英文不好,而且不是计算机毕业,只是觉得能写程序会是一种很自信的感觉促使我总想去系统的学一学。
    回复superppp说:
    我没有参加过任何正规的培训,所学的一切基本上是工作和兴趣的结果。大多数人并没有天生的区别,只要你认定这个方向去努力,即便不能获得通常意义的成功,也能得到内心的一份安慰,起码自己努力了。
    2004-05-26 13:12:16