远程调用jboss as 7上部署的ejb出现No EJB receiver available for handling 异常
昨天倒腾了一天终于配置好了jboss as 7的域,今天又倒腾了一整天在上面部署了个EJB,然后试了一个利用JNDI来进行远程调用。下面记录一下过程中那些乱七八糟的问题:
首先是这个jboss-client.properties文件,各个属性值的含义可以从jboss的官方文档上得到解释https://docs.jboss.org/author/display/AS71/EJB+invocations+from+a+remote+client+using+JNDI
endpoint.name=client-endpoint
remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false
remote.connections=default
remote.connection.default.host=192.168.1.33
remote.connection.default.port=4447
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false
remote.connection.default.username=mosmith
remote.connection.default.password=MTIzNDU2
endpoint.name是个可选的参数,用于EJB Receiver创建连接所用的名称,如果不设置将使用默认值:config-based-ejb-client-endpoint
remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false官方上说是用在创建connection provider 上处理 remote://协议的参数,但具体是什么没有说,照这名字看来好像与安全有关的(纯属猜测)
remote.connections=default,这是指定连接配置名的,我们可以创建多个配置,具体做法请看官方文档
上面需要注意的是:
username是Jboss中application user 中的用户
password这个属性是用用户密码的base64编码。
下面是我的程序远程调用代码,基本和官方给出的一样:
package com.bes.training.ejb.EJBRemoteInvocation; import com.bes.training.ejb.Helloworld.*; import javax.naming.*;
import java.util.*; public class RemoteInvocationDemo {
public static void main(String[] args){ Hashtable<String,String> jndiProperties=new Hashtable<String,String>();
jndiProperties.put(Context.URL_PKG_PREFIXES,"org.jboss.ejb.client.naming");
//jndiProperties.put(Context.INITIAL_CONTEXT_FACTORY,"org.jboss.naming.remote.client.InitialContextFactory");
jndiProperties.put("jboss.naming.client.ejb.context","true"); try{
Context context=new InitialContext(jndiProperties);
Object obj=context.lookup("ejb:/temp//SayHelloImpl!com.bes.training.ejb.Helloworld.SayHelloImplRemote" ); SayHelloImplRemote intf=(SayHelloImplRemote) obj;
String result=intf.sayHello("Mosmith");
System.out.println(result); }catch(NamingException e){
System.out.println(e.getMessage());
e.printStackTrace();
}
}
}
但是在eclipse中运行的时候出现了No EJB receiver available for handling的异常:倒腾了好长时间,于是怀疑-Djboss.ejb.client.properties.file.path=jndi.properties参数没有起作用,于是在命令行下运行了一下,正常!回eclipse仔细检查,发现是参数的设置错了:
应该设置在VM arguments而不是Program arguments里。初学者一定要注意这里的区别啊。
远程调用jboss as 7上部署的ejb出现No EJB receiver available for handling 异常的更多相关文章
- dotNET使用DRPC远程调用运行在Storm上的Topology
Distributed RPC(DRPC)是Storm构建在Thrift协议上的RPC的实现,DRPC使得你可以通过多种语言远程的使用Storm集群的计算能力.DRPC并非Storm的基础特性,但它确 ...
- Ejb远程调用-jboss服务器调用服务器-Bean调用Bean
英文参考地址 https://docs.jboss.org/author/display/AS71/Remote+EJB+invocations+via+JNDI+-+EJB+client+API+o ...
- [BAT]通过schtasks.exe远程调用windows 2008 server上的计划任务,提示ERROR : Access is denied
在windows 2008 server 上建了一个计划任务,想通过命令 schtasks /run /tn "IPADForAdvisor_QA_APITest" /s SZPC ...
- c# 调用EXCEL在VS上能正常运行,部署在IIS上不能实现,在VS中运行页面和发布之后在IIS中运行的区别
发现一篇文章,很好,解决了这个问题:感谢原博主!特此做个笔记. 地址:http://www.cnblogs.com/zhongxinWang/p/3275154.html 发布在IIS上的Web程序, ...
- 用Maven打包成EAR远程部署JBoss(二)——部署到远程JBoss
用Maven打包成EAR远程部署JBoss(一)讲了如何使用Maven打包,可是在文章的最后也留下了一个问题,那就是如何将包部署到远程的JBoss中呢?近期在对之前的学习进行总结,发现少了这样一篇重要 ...
- 在jboss上部署web应用
1.JBoss介绍 JBoss完全实现了J2EE的服务栈: EJB (Enterprise JavaBeans) JMS (Java Message Service) JTS/JTA (Java Tr ...
- Java[2] 分布式服务架构之java远程调用技术浅析(转http://www.uml.org.cn/zjjs/201208011.asp)
转自:http://www.uml.org.cn/zjjs/201208011.asp 在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如: ...
- Dubbo入门到精通学习笔记(二):Dubbo管理控制台、使用Maven构建Dubbo的jar包、在Linux上部署Dubbo privider服务(shell脚本)、部署consumer服务
文章目录 Dubbo管理控制台 1.Dubbo管理控制台的主要作用: 2.管理控制台主要包含: 3.管理控制台版本: 安装 Dubbo 管理控制台 使用Maven构建Dubbo服务的可执行jar包 D ...
- 架构设计:远程调用服务架构设计及zookeeper技术详解(下篇)
一.下篇开头的废话 终于开写下篇了,这也是我写远程调用框架的第三篇文章,前两篇都被博客园作为[编辑推荐]的文章,很兴奋哦,嘿嘿~~~~,本人是个很臭美的人,一定得要截图为证: 今天是2014年的第一天 ...
随机推荐
- HTTP 状态消息
1xx: 信息 消息: 描述: 100 Continue 服务器仅接收到部分请求,但是一旦服务器并没有拒绝该请求,客户端应该继续发送其余的请求. 101 Switching Protocols 服务器 ...
- kuangbin_ShortPath J (POJ 1511)
其实虽然一开始有被这个题的8000MS 和 256MB限制又被吓到 但是严格来说跟之前的POJ 3268是一样的做法只是数据大了点 但是问题就出在数据大了点上 其实严格来说也不大 1e6 数组加起来大 ...
- 黑马程序员——JAVA基础之 == 和equals区别
java中 == 和equals区别: java中的数据类型,可分为两类: 1.基本数据类型,也称原始数据类型.byte,short,char,int,long,float,double,boolea ...
- 上传按钮样式优化 <input type="file" />
<html><head><title>上传按钮样式优化</title> <style>.form-element-file-wapper { ...
- phpstorm编辑器智能提示框架代码
按照上面的步骤就可以智能提示代码了!
- 给OCR文字识别软件添加图像的方法
ABBYY FineReader 12是一款OCR图片文字识别软件,而且强大的它现在还可使用快速扫描窗口中的快速打开.扫描并保存为图像或任务自动化任务,在没有进行预处理和OCR的ABBYY FineR ...
- 009. C#中的WebBrowser控件的属性、方法及操作演示代码(转)
本文转自 http://www.open-open.com/code/view/1430559996802 0.常用方法 Navigate(string urlString):浏览urlString表 ...
- 在同步中调用异步方法[.net 4.5]
using System; using System.Threading; using System.Threading.Tasks; namespace Microsoft.AspNet.Ident ...
- nginx设置不使用缓存 add_header Cache-Control no-cache
nginx设置不使用缓存 server { listen 443; #域名 server_name www.dev.163.com; #字符集 charset utf-8; ssl on; ssl_c ...
- Redis 高可用性解决方案(Sentinel)
Sentinel是Redis的高可用性解决方案: 由一个或多个Sentinel实例组成的Sentinel系统可以监视任意多个主服务器,以及所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主 ...