莊周夢蝶

          生活、程序、未來
             :: 首頁 ::  ::  :: 聚合  :: 管理

          websphere5.1上使用普通client調用EJB需要注意的問題

          Posted on 2007-03-04 11:57 dennis 閱讀(1408) 評論(0)  編輯  收藏 所屬分類: java
          ??? 在websphere server上的jsp、servlet中調用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();
          ??? 如果要在服務器外部的普通java類的main方法中調用websphere上的EJB,需要注意幾個問題:
          1.需要將websphere安裝目錄下的lib中的jar包加入classpath
          2.拷貝websphere安裝目錄下\WebSphere\AppServer\properties\下面的implfactory.properties文件加入classpath
          3.需要將websphere部署完成后生成的jar包(包含自動生成的存根類等,不然會報不能載入存根的error)加入classpath,比如WebSphere\AppServer\installedApps\dennis\JMSTest.ear\JMSTest.jar包
          4.使用webphere自帶的ibm的JDK,也就是安裝目錄下WebSphere\AppServer\java即是,在eclipse中新建一個安裝的jre即可,替代策略是將此jdk下的jre的jar包加進classpath也行

          ??? 一個java類調用ejb的例子,調用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();
          ????????}
          ????}
          }
          在同一臺機器上使用上面的代碼即可調用,遠程調用去掉注釋,并替換相應的IP和port
          主站蜘蛛池模板: 班玛县| 马鞍山市| 乌恰县| 通河县| 中西区| 曲阳县| 定远县| 电白县| 崇州市| 阜南县| 庆安县| 上犹县| 开原市| 西乌珠穆沁旗| 宣威市| 潮安县| 中山市| 浦东新区| 高邑县| 凌云县| 诸城市| 苏尼特右旗| 房山区| 拉萨市| 三门县| 美姑县| 桦川县| 玉门市| 弋阳县| 肥乡县| 宜都市| 麻栗坡县| 青浦区| 襄樊市| 靖西县| 九龙坡区| 宜君县| 绿春县| 桐梓县| 西安市| 饶平县|