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 ...
随机推荐
- jsmooth 中文乱码
为了一个问题 语言国际国际化 测试了这么多回 ,真佩服自己 jsmooth 中文乱码 语言乱码 的解决办法 : 需要在“JVM” 的参数 中填入一项 : user.language=en 而不是 ...
- correctly handle PNG transparency in Win IE 5.5 & 6.
function correctPNG() // correctly handle PNG transparency in Win IE 5.5 & 6. { var arVersion = ...
- nrf51822-添加DFU服务
以ble_app_uart例子为基础,在其上添加dfu服务. Sdk中的bootloader提供了两个方式来进入升级模式,一种是按键,另一种是手机点击升级. 在bootloader代码相关代码如下 如 ...
- ios 消息传递机制
引用文章 一.KVO 1.当对象中的某个属性值发生了改变,可以对这些值的观察者做出通知. 2.接受者(会接收到值发生改变的消息) 必须知道发送者(值将发生改变的那个对象). 3.接收者同样还需要知道发 ...
- js严格模式“use strict”
js的严格模式会放弃js中的一些不正规的写法,参考 http://www.cnblogs.com/God-Shell/p/3139329.html: 使用声明"use strict&quo ...
- java简单优化和编写规范,自己总结的。
1.永远不要比较两个浮点数是否相等.它是不安全的.详情google. 2.尽量使用StringBuffer代替String. 3.final类会提高很多效率. 4.try-catch 不应该用来控制程 ...
- QDir路径的测试与创建-QT
#include <QCoreApplication> #include <QDir> #include<QtDebug > #include<QFileIn ...
- MAC下配置ZSH
Mac的Terminal出了bash还配备了zsh模式,相比于bash,zsh的界面更加简单精致,用户名直接省略,用一个小箭头代替,而且箭头的颜色还可以指示命令的对错:路径和文件名的自动补全功能也十分 ...
- C#实现二叉查找树
简介 树是一种非线性结构.树的本质是将一些节点由边连接起来,形成层级的结构.而二叉树是一种特殊的树,使得树每个子节点必须小于等于2.而二叉查找树又是一类特殊的二叉树.使得每一个节点的左节点或左子树的所 ...
- Interview Check If n Is A Perfect Square
Check if a given number is a perfect square with only addition or substraction operation. eg. 25 ret ...