莊周夢蝶

          生活、程序、未來
             :: 首頁 ::  ::  :: 聚合  :: 管理
          ??? 在websphere server上的jsp、servlet中調(diào)用EJB很簡單了:
          ??????????? Context?ctx?=?new?InitialContext();
          ????????????MessageSender?msgSender?
          =?null;
          ????????????MessageSenderHome?home?
          =?(MessageSenderHome)?javax.rmi.PortableRemoteObject
          ????????????????????.narrow(ctx.lookup(
          "MessageSender"),
          ????????????????????????????MessageSenderHome.
          class);

          ????????????msgSender?
          =?home.create();
          ????????????msgSender.sendMessage();
          ??? 如果要在服務(wù)器外部的普通java類的main方法中調(diào)用websphere上的EJB,需要注意幾個(gè)問題:
          1.需要將websphere安裝目錄下的lib中的jar包加入classpath
          2.拷貝websphere安裝目錄下\WebSphere\AppServer\properties\下面的implfactory.properties文件加入classpath
          3.需要將websphere部署完成后生成的jar包(包含自動(dòng)生成的存根類等,不然會(huì)報(bào)不能載入存根的error)加入classpath,比如WebSphere\AppServer\installedApps\dennis\JMSTest.ear\JMSTest.jar包
          4.使用webphere自帶的ibm的JDK,也就是安裝目錄下WebSphere\AppServer\java即是,在eclipse中新建一個(gè)安裝的jre即可,替代策略是將此jdk下的jre的jar包加進(jìn)classpath也行

          ??? 一個(gè)java類調(diào)用ejb的例子,調(diào)用SLSB:
          package?net.rubyeye.testjms;

          import?javax.naming.Context;
          import?javax.naming.InitialContext;

          import?net.rubyeye.testjms.interfaces.MessageSender;
          import?net.rubyeye.testjms.interfaces.MessageSenderHome;

          public?class?Test?{

          ????
          /**
          ?????*?
          @param?args
          ?????
          */
          ????
          public?static?void?main(String[]?args)?{
          ????????
          try?{
          ????????????
          //?Hashtable?h?=?new?Hashtable();
          ????????????
          //?h.put(Context.INITIAL_CONTEXT_FACTORY,
          ????????????
          //?"com.ibm.websphere.naming.WsnInitialContextFactory");
          ????????????
          //?h.put(Context.PROVIDER_URL,?"corbaloc::127.0.0.1:port");
          ????????????Context?ctx?=?new?InitialContext();
          ????????????MessageSender?msgSender?
          =?null;
          ????????????MessageSenderHome?home?
          =?(MessageSenderHome)?javax.rmi.PortableRemoteObject
          ????????????????????.narrow(ctx.lookup(
          "MessageSender"),
          ????????????????????????????MessageSenderHome.
          class);

          ????????????msgSender?
          =?home.create();
          ????????????msgSender.sendMessage();
          ????????}?
          catch?(Throwable?t)?{
          ????????????t.printStackTrace();
          ????????}
          ????}
          }
          在同一臺(tái)機(jī)器上使用上面的代碼即可調(diào)用,遠(yuǎn)程調(diào)用去掉注釋,并替換相應(yīng)的IP和port
          主站蜘蛛池模板: 仙桃市| 临漳县| 建德市| 毕节市| 兴业县| 永吉县| 巴东县| 广州市| 林州市| 平舆县| 庆元县| 罗田县| 永善县| 沈丘县| 汝阳县| 巴林左旗| 灌云县| 如东县| 邯郸市| 四川省| 宁安市| 莫力| 获嘉县| 绥滨县| 都江堰市| 杨浦区| 巫山县| 隆尧县| 天门市| 吐鲁番市| 天等县| 霍城县| 开化县| 巫溪县| 涞源县| 和顺县| 镇江市| 平陆县| 石景山区| 明水县| 淮南市|