was ejb学习

最近因为项目需要,对ilog进行了学习,包括ilog在was的安装以及客户端连接ilog等内容。
个人感觉很多是通过ejb来进行查找及调用的,所以,特意自己做了一个ejb在was上部署以及客户端连接的例子:
[b][color=red]1、ejb方面[/color][/b]
ejb采用ejb 2,分三个类:Hello、HelloHome、HelloWord;
[color=cyan]Hello:[/color]
public class Hello implements SessionBean {
/** The session context */
private SessionContext context;
public Hello() {
super();
// TODO Auto-generated constructor stub
}
/**
* Set the associated session context. The container calls this method
* after the instance creation.
*
* The enterprise bean instance should store the reference to the context
* object in an instance variable.
*
* This method is called with no transaction context.
*
* @throws EJBException Thrown if method fails due to system-level error.
*/
public void setSessionContext(SessionContext newContext)
throws EJBException {
context = newContext;
}
public void ejbCreate() throws EJBException, RemoteException {
// TODO Auto-generated method stub
System.out.println("ejb create");
}
public void ejbRemove() throws EJBException, RemoteException {
// TODO Auto-generated method stub
}
public void ejbActivate() throws EJBException, RemoteException {
// TODO Auto-generated method stub
}
public void ejbPassivate() throws EJBException, RemoteException {
// TODO Auto-generated method stub
}
/**
* An example business method
*
* @ejb.interface-method view-type = "remote"
*
* @throws EJBException Thrown if method fails due to system-level error.
*/
public String sayIt() throws EJBException {
System.out.println("hello didi");
return "hello didi.";
}
}
[color=cyan][b]HelloHome[/b][/color]
public interface HelloHome
extends javax.ejb.EJBHome
{
public com.rox.HelloWorld create()
throws javax.ejb.CreateException,java.rmi.RemoteException;
}
[color=cyan]HelloWorld[/color]
public interface HelloWorld extends EJBObject{
public String sayIt() throws RemoteException;
}
[color=red][b]2、发布ejb到was中[/b][/color]
注意:在ejb的jndi项,填写ejb/hello,以便以后在client端进行引用。
[color=red][b]3、将导入的ejb导出[/b][/color]
注意:was比较恶心的地方在这里,因为我们在创建ejb的时候,没有生成stub等类,而was在发布我们的ejb时,自动给我们补齐,所以,我们从发布的ejb导出客户端需要的jar包。
[b][color=red]4、客户端编写[/color][/b]
注意事项:
[color=cyan]a、jre问题[/color]
必须采用ibm的jre,否则无法通过;
[color=cyan]b、依赖jar包问题[/color]
依赖的jar包包括三部分:
部分一:was中的lib里面的包;
部分二:was中的runtime中的包;
部分三:从was导出的ejb的jar包;
以上包中,第一部分可能不全部需要,但本人没有研究确切的需要那几个包,不过,添加了全部包后,可以确保测试通过;
[color=cyan]c、客户端的代码实现[/color]
javax.naming.InitialContext initialContext = null;
Properties environment = new Properties();
//environment.put(Context.PROVIDER_URL, "iiop://10.66.49.249:2809"); 因为本人在本机测试,所以不用设置这条。
environment.put(Context.INITIAL_CONTEXT_FACTORY, "com.ibm.websphere.naming.WsnInitialContextFactory");
environment.put(Context.URL_PKG_PREFIXES, "com.ibm.ws.naming");
initialContext = new javax.naming.InitialContext(environment);
HelloHome helloHome = null;
Object obj = initialContext.lookup("ejb/hello");
helloHome = (HelloHome)javax.rmi.PortableRemoteObject.narrow(obj, HelloHome.class);
HelloWorld hello = helloHome.create();
System.out.println(hello.sayIt());


//thank you ,that is all!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值