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

时间: 2024-09-20 19:29:52

websphere5.1上使用普通client调用EJB需要注意的问题的相关文章

java-RMI本地client调用远程服务器上的server报错

问题描述 RMI本地client调用远程服务器上的server报错 代码这篇文章上的.Java RMI之HelloWorld篇 我把ihello,helloimpl,server放在了服务器上,client放在了本机电脑的eclipse中 保证远程服务器上的server正常运行,运行client报错 Caused by: java.lang.ClassNotFoundException: IHello (no security manager: RMI class loader disabled

集群 ejb-websphere8.5.5上的应用通过EJB调用weblogic8.1上的应用,调用不通

问题描述 websphere8.5.5上的应用通过EJB调用weblogic8.1上的应用,调用不通 各位大牛好,目前项目遇到了一个比较棘手的问题,想请求一下各位大牛,万分感谢.我们的项目是部署在websphere8.5.5上,JDK是1.6,集群有4台服务器,通过EJB调用Weblogic8.1上的应用,JDK是1.4,投产后,有时4台服务器会有一台可以连通到weblogic上的应用,有时候都连不能连能,并且报org.omg.CORBA.ORBPackage.InvalidName: Loca

ASP.NET应用程序中调用EJB

摘要 本文将介绍如何实现你的ASP.NET应用程序与J2EE应用程序服务器之间的交互以及怎样使得调用EJB与调用XML Web服务一样地容易. 简介 今天,许多大型组织发现他们自己正在拥有和使用由.NET技术和J2EE技术混合组成的开发团队和发布服务器.为了平衡通过J2EE应用程序服务器发送的企业质量,公司的商业逻辑经常以企业JavaBean(EJB)的形式发布于J2EE应用程序服务器上.另一方面,为了满足日益变化的商业发展的要求,多数开发者比较喜欢在具有高度生产性能的Visual Studio

虚拟键盘-JavaScript怎样实现咋键盘上按下不同的键,页面上不同的div调用同一个css样式

问题描述 JavaScript怎样实现咋键盘上按下不同的键,页面上不同的div调用同一个css样式 这是页面上的一个虚拟键盘,我想实现的是当我在电脑的键盘上按键后,虚拟键盘上的相对应的键会有不同的显示效果(调用一个css)(虚拟键盘上的每一个小键都是一个图片),就是当我按下不同的按键,页面上相对的键所在的div就会调用同一个css 解决方案 虚拟键盘上的每个控件都增加keycode属性,然后document.onkeydown获取时间的keycode属性后获取控件添加个样式,过100ms再移除什

Weblogic域间调用EJB事务错误

问题描述 所在项目中,系统将业务逻辑单独部署,以下称之为EJB层,和普通的WEB层相对独立.从WEB层调用EJB层,通过Command架构,其包含的EJB调用是事务性质的.WEB应用中有设置一个定时器,完成定时任务,任务过程中需要调用EJB层.最近重新配置了一个Weblogic域调用EJB事务,但发现奇怪的问题:普通从WEB层网页点击产生的事务,调用新配置的EJB层,没有问题;但定时器工作时,调用新配置的EJB层,就一堆下面错误:错误现象(在被调用的EJB服务器屏幕上出现):<2011-4-19

ejb调用ejb

问题描述 sessionbean可以相互调用吗?可以的话要设置什么呀?急急急!!!求租各位大侠 解决方案 解决方案二:可以调用remote接口解决方案三:可以,打包被调接口给调用ejb,调用ejb调用被调remote接口解决方案四:可以,使用@EJB注入就行了解决方案五:引用2楼z1g2w3i4的回复: 可以,打包被调接口给调用ejb,调用ejb调用被调remote接口 大哥,这个能不能详细点啊,好抽象.在下小菜鸟一个最好有个例子能看看啊还有3楼的兄弟?@EJB注入使用spring吗?最好也有个

jsp中调用上一个网页中调用的js里面的input text的值

问题描述 jsp中调用上一个网页中调用的js里面的input text的值 套了一个时间选择的模板,想要获取开始时间和结束时间,但是这两个出现在调用的js里面,怎么获取 解决方案 将控件绑定id,js中有通过id设置控件内容的方法 解决方案二: 当前网页和上一个网页是什么关系?iframe还是window.open? iframe可以用parent或者document.getElementById('ifrID').contentWindow得到相互引用, window.open用opener或

cxf-CXF动态生成client调用服务端,服务端收到参数为空,请教如何解决?

问题描述 CXF动态生成client调用服务端,服务端收到参数为空,请教如何解决? 请教大家一个问题. java做客户端,c#做服务端.java用apache.cxf的DynamicClientFactory或者JaxWsDynamicClientFactory根据wsdl生成client,调用服务端传递UserSyncData对象,服务端方法收到的参数对象是null,请问大家有解决办法吗?(需求:一定要用动态生成客户端的方式) 传递的对象UserSyncData 是jdk或者用cxf的wsdl

centos上通过dns方式调用gethostbyname函数获取IP地址,还需要哪些设置吗?

问题描述 centos上通过dns方式调用gethostbyname函数获取IP地址,还需要哪些设置吗? 对端IP地址可能会改变,想通过dns方式来获取对端IP地址.即在本地文件中配置对端网址,通过该网址获取到IP.我写了如下代码,ping www.baidu.com有回复报文,但是程序却得到IP地址,还需要什么配置吗?请高手指导下,谢谢! int main(int argc, char **argv) { char **pptr = NULL; struct hostent *hptr = N