Ejb: remote调用
用的是wildfly 9.0.2
一:在myeclipse中新建wildfly 9.0.2的server(如何新建去网上搜)
二:修改wildfly server的argument(在run configurations里,不在preference里)
在Program arguments后面加入-b 172.16.15.142
三:新建Ejb项目,新建interface和bean
Ejb1.java:
package ejb100; public interface Ejb1 { public String sayHello(String name); }
Ejb1Bean.java:
package ejb100; import javax.ejb.Remote; import javax.ejb.Stateless; @Stateless @Remote public class Ejb1Bean implements Ejb1 { @Override public String sayHello(String name) { // TODO Auto-generated method stub return "Hello, " + name; } }
四:将该ejb project add deployment到server中,直接在myeclipse上操作
四:新建java project
1. 将jboss-client.jar加入build path
2. 将JBoss文件夹里的standalone文件夹里的deployment文件夹里的相应的ejb服务文件夹加入到build path中
3. 编写test程序
package ejb100test; import java.util.Properties; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import ejb100.Ejb1; public class Ejb100Test { public static void main(String[] args) throws NamingException { // TODO Auto-generated method stub Properties prop = new Properties(); prop.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming"); InitialContext context = new InitialContext(prop); Ejb1 test = (Ejb1)context.lookup("ejb:/Ejb100/Ejb1Bean!" + Ejb1.class.getName()); System.out.println(test.sayHello("yingzhongwen")); } }
注意这里的地址是ejb:/module/bean-simple-name!interface-full-name。注意大小写
在src文件夹下加入jboss-ejb-client.properties
endpoint.name=client-endpoint remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false remote.connections=default remote.connection.default.host=172.16.15.142 remote.connection.default.port=8180 remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false remote.connection.default.username=ejbuser remote.connection.default.password=ejbuser
因为我在standalone.xml里修改了port偏移值为100,因此默认的port8080变成了8180
通过127.0.0.1:10090(port偏移了)web url可以看到被部署的ejb服务。
****************************************************************************
注意整个过程容易犯的错误:
1. 忘记将jboss-client.jar加入build path
2. jboss-ejb-client.properties配置错误,比如ip, port等等
3. context.lookup里的路径写错,虽然在ejb console里写的是java:global开头的地址,但是经测试发现这个地址并不能用,需要使用ejb开头的地址,另外大小写也是容易忽略的问题
4. 不需要用ant或者export等工具来将ejb打成jar包,如果打成jar包放到deployment中,则注意这里需要将其jar包放到build path中,并且context.lookup里的路径应该这么写:ejb:/jar-name/bean-simple-name!interface-full-name。
*****************************************************************************
在服务器内部调用其他的ejb服务:
Injection.java:
package ejb200; public interface Injection { public String sayHello(); }
InjectionBean.java
package ejb200; import javax.ejb.EJB; import javax.ejb.Remote; import javax.ejb.Stateless; import ejb100.Ejb1; @Stateless @Remote(Injection.class) public class InjectionBean implements Injection { @EJB private Ejb1 ejb1; @Override public String sayHello() { // TODO Auto-generated method stub return ejb1.sayHello("yingzhongwen"); } }
这时只需要redeploy一下,就可以了
Ejb: remote调用的更多相关文章
- EJB的调用
EJB调用.html :first-child{margin-top:0!important}img.plugin{box-shadow:0 1px 3px rgba(0,0,0,.1);border ...
- weblogic的ejb远程调用
这是一篇对EJB远程调用的简单范例. 1.环境:win7 + weblogic 12c + myeclipse8.5 2.目的:实现在myeclispe中对weblogic中EJ ...
- 解决EJB本地调用“java.lang.ClassCastException: $Proxy96 cannot be cast to com.tgb.ejb.UserManager”异常
EJB本地调用方式:把Webclient和EJB服务端部署到同一个JBoss,client和server通过一个JVM进行通信. Web客户端本地调用时.需引用EJB服务端打包的jar,不需引用JBo ...
- Ejb远程调用-jboss服务器调用服务器-Bean调用Bean
英文参考地址 https://docs.jboss.org/author/display/AS71/Remote+EJB+invocations+via+JNDI+-+EJB+client+API+o ...
- JBOSS EAP 6 系列四 EJB实现——调用(贯穿始终的模块)
本文主要介绍在JBOSS EAP 6.2(或者JBOSS AS7)中模块是如何贯穿EJB实现的始终.延续上一博文<认识模块的使用>的话题继续聊JBOSS做为模块申明式容器的这一特性在EJB ...
- ejb 远程调用
1,客户端代码: package com.example.test; import java.util.Hashtable; import java.util.Properties; import j ...
- EJB Remote/Local 绑定和JNDI Lookup
从同事那里学到一种方便的注解SessionBean的方式.代码我放到github去了 https://github.com/EdisonXu/Test/commit/703d49123dca9e666 ...
- 需要安全认证的远程EJB调用示例(Jboss EAP 6.2环境)
一,Remote EJB 服务接口定义: package yjmyzz.ejb.server.helloworld; public interface HelloWorldService { publ ...
- JavaEE(8) - 本地和远程调用的有状态以及无状态Session EJB
1. 使用NetBeans开发Session Bean #1. 创建项目:File-->New Project-->Java EE-->EJB Module #2. 在项目中创建Se ...
随机推荐
- file_get_contents无法获取数据的一种情况
下面这段php代码突然不好使了,返回的 $html 为空,百思不得解.网上说法好多,但都是一家之言,解决不了我的问题.(我的解决方法也是一家之言,只能解决file_get_contents获取不到数据 ...
- 【转】UGUI实现unity摇杆
http://blog.csdn.net/onafioo/article/details/46403801 http://www.winig.cc/archives/348 好久没有写文章了,最近在做 ...
- Ubuntu常用200条命令
查看软件xxx安装内容:dpkg -L xxx 查找软件库中的软件:apt-cache search 正则表达式 查找软件库中的软件:aptitude search 软件包 查找文件属于哪个包: ...
- Windows下查看机器监听端口
1.查看所有端口占用情况 在开始-运行-cmd,输入:netstat –ano可以查看所有进程 2.查看指定端口的占用情况 netstat -an |findstr :21
- AMQP协议
当前各种应用大量使用异步消息模型,并随之产生众多消息中间件产品及协议,标准的不一致使应用与中间件之间的耦合限制产品的选择,并增加维护成本. AMQP是一个提供统一消息服务的应用层标准协议,基于此协议的 ...
- 使用C#发送正文带图片邮件
最近有个地方用到正文带图片的邮件发送功能,由于发送邮件调用的是web service,要求正文必须是string,而接收方要能看到图片,还不能单纯的添加一个图片地址链接,查阅了很多资料,基本上都是从头 ...
- 20145211 《Java程序设计》第4周学习总结——园日涉以成趣
编程思想DRY和Once and Only Once DRY DRY原则的为"每一个知识都必须在系统内必须是单一的,明确的,权威的,具有代表性.当DRY的原则成功应用,在系统中,任何单一元素 ...
- 转:Asp.net Mvc4默认权限详细(上)
前言 上篇的菜鸟去重复之Sql的问题还没有得到满意的答案.如果哪位大哥有相关的资料解释,能够分享给我,那就太谢谢了. 以后每发表一篇博文我都会将以前遗留的问题在前言里指出,直到解决为止. 本文主要在于 ...
- js方法参数默认值设置
这里的默认值设置 很容易以为和php相似 function(v1,v2="test") { alert(v2); } 但这样是不对的,js方法,如需传参,甚至可以不用预定义(也就是 ...
- CentOS6.5Minimal安装Gitlab7.5
文章出处:http://www.restran.net/2015/04/09/gilab-centos-installation-note/ 在 CentOS 6.5 Minimal 系统环境下,用源 ...