[转]websphere5.1上使用普通client调用EJB需要注意的问题

 

    在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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值