was ejb学习[通俗易懂]

was ejb学习[通俗易懂]最近因为项目需要,对ilog进行了学习,包括ilog在was的安装以及客户端连接ilog等内容。个人感觉很多是通过ejb来进行查找及调用的,所以,特意自己做了一个ejb在was上部署以及客户端连接的例子:[b][color=red]1、ejb方面[/color][/b]ejb采用ejb2,分三个类:Hello、HelloHome、HelloWord;[color…


Jetbrains全系列IDE稳定放心使用
最近因为项目需要,对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!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/187651.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • ubuntu密码设置规则_密码复杂性策略

    ubuntu密码设置规则_密码复杂性策略版本查看cat/etc/issuecat/proc/version内核查看uname-aUbuntu修改密码及密码复杂度策略设置方法一、修改密码1、修改普通用户密码passwd2、修改root用户密码sudopasswdroot默认root用户被禁止登录,如果需要解除限制,修改配置即可sudovim/etc/ssh/sshd_config将默认配置注释掉,添加一行新的配置,默认的配置为允许root登录,但是禁止root用密码登录将默认配置注释掉,添加一行新

    2022年9月29日
  • String转JSONArray,遍历JSONArray,Array数组转换成JSON字符串

    String转JSONArray,遍历JSONArray,Array数组转换成JSON字符串String转JSONArray, /** *String转JSONArray */ publicstaticvoidtest1(){ Stringjson="[{\"name\":\"张三\",\"code\":\"123\"},{\"name\":\"李四\",\"code\":\"123\"}]&quot

    2022年6月20日
  • cocos 3.0 一键打包android平台应该注意的细节

    cocos 3.0 一键打包android平台应该注意的细节

    2021年11月17日
  • 火狐破解收费hackbar「建议收藏」

    火狐破解收费hackbar「建议收藏」https://blog.csdn.net/qq_38963246/article/details/95489242

    2022年6月10日
  • 深入理解Batchnorm

    深入理解Batchnorm这几天面试经常被问到BN层的原理,虽然回答上来了,但还是感觉答得不是很好,今天仔细研究了一下BatchNormalization的原理,以下为参考网上几篇文章总结得出。  BatchNormalization作为最近一年来DL的重要成果,已经广泛被证明其有效性和重要性。虽然有些细节处理还解释不清其理论原因,但是实践证明好用才是真的好,别忘了DL从Hinton对深层网络做Pre-Train开…

    2022年6月9日
  • android之service简单介绍

    一 什么是Service二 如何使用Service 三 Service的生命周期  一 什么是Service Service,看名字就知道跟正常理解的“服务”差不多,后台运行,可交互这样的一个东西。它跟Activity的级别差不多,也需要在配置文件里注册,但是他不能自己运行,需要通过某一个Activity或者其他Context对象来调用, Context.startServ

    2022年3月9日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号