was ejb学习[通俗易懂]

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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • HTML导航菜单

    HTML导航菜单1导航菜单程序管理版本管理渠道管理资源管理 上传资源分离左右页面#conter{width:90%;margin:auto;}#help-left{width:10%;

    2022年7月26日
    6
  • 不能复制文字的网页文字复制怎么办_实现网页布局的方法

    不能复制文字的网页文字复制怎么办_实现网页布局的方法想必很多小伙伴遇到过这样的情况,在网上查找很多的资料,但是因为网页本身的限制不允许复制或者需要付费:遇到这种情况应该怎么办呢?接下来,就和大家分享下如何免费复制网页上不能复制的文字!解决方法一:转到打印界面进行复制:在需要复制文字的界面鼠标右键选择打印或者使用快捷键Ctrl+P,打开打印界面,在打印界面就可以进行复制操作啦!解决方法二:源代码界面复制在需要复制文字的界面鼠标右键选择“查看网页源代码”或者使用快捷键Ctrl+U,打开源代码界面,在源代码界面找到自己要复制的内容复

    2022年10月13日
    4
  • acwing-最长上升公共子序列(动态规划)[通俗易懂]

    acwing-最长上升公共子序列(动态规划)[通俗易懂]原题连接熊大妈的奶牛在小沐沐的熏陶下开始研究信息题目。小沐沐先让奶牛研究了最长上升子序列,再让他们研究了最长公共子序列,现在又让他们研究最长公共上升子序列了。小沐沐说,对于两个数列 A 和 B,如果它们都包含一段位置不一定连续的数,且数值是严格递增的,那么称这一段数是两个数列的公共上升子序列,而所有的公共上升子序列中最长的就是最长公共上升子序列了。奶牛半懂不懂,小沐沐要你来告诉奶牛什么是最长公共上升子序列。不过,只要告诉奶牛它的长度就可以了。数列 A 和 B 的长度均不超过 3000。输入格式

    2022年8月8日
    11
  • 如何下载pycharm以前的版本_pycharm怎么下载包

    如何下载pycharm以前的版本_pycharm怎么下载包地址:https://www.jetbrains.com/pycharm/download/previous.html点击进去就能看到各个版本的下载链接。————————————————版权声明:本文为CSDN博主「lyj156」的原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/lyj156/article/details/95887590…

    2022年8月25日
    6
  • 【Redis源码分析】一个对SDSHDR5是否使用的疑问

    【Redis源码分析】一个对SDSHDR5是否使用的疑问

    2021年6月18日
    112
  • 关于sstream的灵活使用

    关于sstream的灵活使用问题有10000个队伍参加。经过工作人员认真负责的统计,本来已经统计好了这一万个队伍的分数和排名,并按照排名从高到低依次进行了编号(从1到10000)但是由于一个非常偶然的因素,导致其中三个编号的数据丢失,而且剩余编号的顺序也全被打乱了。你需要编写一个程序,根据还保留的统计数据,来判断哪些编号的数据丢失了,并将这些编号按照从小到大的顺序重新拼接为一个新数字,然后计算这个新数字除以11的余数。如…

    2022年6月3日
    35

发表回复

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

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