websphere5.1上使用普通client调用EJB需要注意的问题-阿里云开发者社区

开发者社区> boxti> 正文

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

文章转自庄周梦蝶  ,原文发布时间5.17

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
C/C++封装库ocicpplib调用Oracle存储过程的方法
工作这么多年,一直使用Mysql, Oracle数据库没有接触过, 这次要使用C/C++语言来调用Oracle的存储过程, 懒得自己去看OCI的API了, 直接上网找别人封装的库, 最后发现了这个ocicpplib, 下载了看了一下, 还不错, 使用起来比较简单。
1069 0
Visual Studio 2010 起始页中 不显示最近使用的项目问题,解决办法
最近新装了vs2010,发现打开vs2010 后 起始页面中的最近使用的栏目中 并未显示最近加载的项目 解决办法如下: 运行 regedit 打开下面的键值: HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Policie...
486 0
20.Eclipse下Ndk开发(pthread开启线程调用Java方法)
本项目最终的目的是在pthread线程中,调用Java一个工具类得到多个uuid,然后调用类中另一个方法弹出toast,实现在c中获取安卓上下文对象Context 编译native方法,生成头文件的一系列过程不再赘述,直接上代码,都在注释中 PosixUtils: package com.
979 0
Python+selenium 自动化-调用dom节点的click()监听事件,强力操作节点!穿透元素进行点击,节点被遮挡不可点击解决方法
Python+selenium 自动化-调用dom节点的click()监听事件,强力操作节点!穿透元素进行点击,节点被遮挡不可点击解决方法
16 0
+关注
boxti
12535
10037
文章
1327
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载