JBoss Remoting支持多种协议方式调用远程对象,例如socket的方式、RMI的方式、Http的方式等等

分布式框架JBoss Remoting支持多种协议方式调用远程对象,例如socket的方式、RMI的方式、Http的方式等等

(目前传输协议有tcp和udp两种,其他http、ftp、telnet等都是基于tcp扩展出来的应用协议)

JBoss Remoting 采用了NIO(非阻塞io流,Java NIO可以让你异步的使用IO,例如:当线程从通道读取数据到缓冲区时,线程还是可以进行其他事情。当数据被写入到缓冲区时,线程可以继续处理它。从缓冲区写入通道也类似。)长链接,支持异步调用,采用tcp协议

依赖的jar:

[html] view plaincopy
  1. <dependency>
  2. <groupId>org.jboss.remoting</groupId>
  3. <artifactId>jboss-remoting</artifactId>
  4. <version>2.5.3</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>concurrent</groupId>
  8. <artifactId>concurrent</artifactId>
  9. <version>1.3.4</version>
  10. </dependency>
  11. <dependency>
  12. <groupId>jboss</groupId>
  13. <artifactId>jboss-serialization</artifactId>
  14. <version>4.2.2.GA</version>
  15. </dependency>

服务端代码:

[java] view plaincopy
  1. import java.net.MalformedURLException;
  2. import javax.management.MBeanServer;
  3. import org.jboss.remoting.InvocationRequest;
  4. import org.jboss.remoting.InvokerLocator;
  5. import org.jboss.remoting.ServerInvocationHandler;
  6. import org.jboss.remoting.ServerInvoker;
  7. import org.jboss.remoting.callback.InvokerCallbackHandler;
  8. import org.jboss.remoting.invocation.NameBasedInvocation;
  9. import org.jboss.remoting.transport.Connector;
  10. public class ServerTest {
  11. public static void main(String[] args) {
  12. String locatorURI = "socket://127.0.0.1:8084";
  13. String params = "/?backlog=50&numAcceptThreads=30&maxPoolSize=30&clientMaxPoolSize=30&clientLeasePeriod=10000&timeout=8000";
  14. locatorURI += params;
  15. try {
  16. InvokerLocator locator = new InvokerLocator(locatorURI);
  17. Connector connector = new Connector(locator);
  18. connector.create();
  19. connector.addInvocationHandler("com.**.jhb.ServerHandle", new ServerInvocationHandler() {
  20. @Override
  21. public void addListener(InvokerCallbackHandler arg0) {
  22. }
  23. @Override
  24. public Object invoke(InvocationRequest arg0) throws Throwable {
  25. System.out.println("getRequestPayload " + arg0.getRequestPayload());
  26. // 方式一
  27. System.out.println("getParameter " + arg0.getParameter());
  28. // 方式二
  29. NameBasedInvocation obj = (NameBasedInvocation) arg0.getParameter();
  30. System.out.println("getParameter " + obj.getParameters()[0]);
  31. return "hello";
  32. }
  33. @Override
  34. public void removeListener(InvokerCallbackHandler arg0) {
  35. }
  36. @Override
  37. public void setInvoker(ServerInvoker arg0) {
  38. }
  39. @Override
  40. public void setMBeanServer(MBeanServer arg0) {
  41. }
  42. });
  43. connector.start();
  44. } catch (MalformedURLException e) {
  45. e.printStackTrace();
  46. } catch (Exception e) {
  47. e.printStackTrace();
  48. }
  49. }
  50. }
[java] view plaincopy
  1. public interface ServerHandle {
  2. String say(String hi);
  3. }

客户端代码:

[java] view plaincopy
  1. import java.net.MalformedURLException;
  2. import java.util.HashMap;
  3. import org.jboss.remoting.Client;
  4. import org.jboss.remoting.InvokerLocator;
  5. public class ClientTest {
  6. public static void main(String[] args){
  7. String locatorURI = "socket://127.0.0.1:8084";
  8. String params = "/?backlog=50&numAcceptThreads=30&maxPoolSize=30&clientMaxPoolSize=30&clientLeasePeriod=10000&timeout=8000";
  9. locatorURI += params;
  10. try {
  11. InvokerLocator locator = new InvokerLocator(locatorURI);
  12. //方式1
  13. Client client = new Client(locator,ServerHandle.class.getName());
  14. client.connect();
  15. client.invoke("jhb ",new HashMap<String,String>());
  16. //方式二
  17. /*ServerHandle serverHandle=(ServerHandle) TransporterClient.createTransporterClient(locator, ServerHandle.class);
  18. serverHandle.say("jhb");*/
  19. } catch (MalformedURLException e) {
  20. e.printStackTrace();
  21. } catch (Exception e) {
  22. e.printStackTrace();
  23. } catch (Throwable e) {
  24. e.printStackTrace();
  25. }
  26. }
  27. }

参考链接:

http://docs.jboss.org/jbossremoting/2.5.3.SP1/html/chapter-configuration.html#d0e1564

jboss-remoting服务相关推荐

  1. .NET Remoting开发系列:(三) Remoting服务发布方式

    Remoting服务发布方式? 使用应用程序发布 这个在第一篇就已经讲了. 通过Windows服务发布 通过IIS发布 通过Windows服务发布Remoting 首先我们要建立一个WindowsSe ...

  2. Remoting服务集成到IIS的简单总结

    因为项目的Remoting服务有可能集成到IIS中,所以下午利用一些时间,做了一个例子,实现了需要的功能,代码就凑合一下. 现在把这个过程总结一下: 1.       创建远程对象类Class1,它实 ...

  3. .net 安装remoting服务

    程序->vs2008->vs tools->vs2008 命令提示 D:\QidianWorkShop\Develop\Source\Services\Snda.Qidian.Hon ...

  4. jboss jndi服务

    http://www.builder.com.cn/2007/1217/684114.shtml

  5. Microsoft .Net Remoting系列专题之二:Marshal、Disconnect与生命周期以及跟踪服务

    Microsoft .Net Remoting系列专题之二 一.远程对象的激活 在Remoting中有三种激活方式,一般的实现是通过RemotingServices类的静态方法来完成.工作过程事实上是 ...

  6. 使用javaservice 将jboss 注册为服务

    近来做项目,需要jboss定期重新启动.不想再看到jboss启动那个黑洞洞的窗口,就想着把它注册为服务,然后在net start.恰好objectweb上有个open source的javaservi ...

  7. JBoss核心Java Web服务

    这篇博客文章涉及Web服务. 好吧,更确切地说,它处理JBoss上的"普通" java Web服务. 这意味着我们将创建一个没有任何其他框架(如CXF,Axis等)的Web服务. ...

  8. jboss配置ejb容器_JBoss AS 7 EJB3池配置

    jboss配置ejb容器 现在已经发布了AS 7.0.1,下面让我们看看有哪些新的EJB3功能可用. 就像我在上一篇文章中提到的那样 ,AS 7.0.1现在允许您为无状态会话bean和MDB配置池. ...

  9. JBoss AS 7 EJB3池配置

    现在,AS 7.0.1已经发布,让我们看一下可用的EJB3新功能. 就像我在上一篇文章中提到的那样 ,AS 7.0.1现在允许您为无状态会话bean和MDB配置池. 当前,我们允许在子系统级别配置池, ...

  10. jboss eap mysql_JBoss EAP 7概述

    规范 JBoss EAP 7基于以下规范构建: Java EE 7(JSR 342) Java SE 1.8 Java EE 7 specifications: Note: orange indica ...

最新文章

  1. LeetCode 23 合并K个升序链表
  2. 2 微信公众号开发 服务器配置 Token验证
  3. mysql行级锁升级_mysql innodb 行级锁升级
  4. Bootstrap 分页导航
  5. PYB Nano 开发板的完整设计文档
  6. 深入学习Java虚拟机(三)
  7. adb安装apk文件时的常见的错误及解决方法
  8. 仿Twitter源代码/社交网络源码/基于脉聊二开版本
  9. 运筹说 第55期丨整数规划先驱——Ralph Gomory
  10. 如何检测android手机是否支持3g网络或者4g网络 源码,iOS中怎么判断当前网络环境是2G/3G/4G/5G/WiFi...
  11. Promise、then()、catch()详解
  12. 各种电脑/软件/生活/音乐/动漫/电影技巧汇总,你肯定能发现你需要的使用技巧,你的生活绝对会因此简化很多,具体操作见本专栏相关文章或点击链接
  13. iOS 通过数字拼音快速搜索股票
  14. android SDK buid tools 27.0.3版本离线下载
  15. Spring/SpringBoot系列之Spring中涉及的9种设计模式【七】
  16. 判断门禁卡是否加密_离无卡生活更进一步!判断您的门禁卡能否被手机NFC功能模拟...
  17. 地鼠与植物,hash + 平衡树
  18. java生成二维码图片(有logo),并在图片下方附文字
  19. 桥接、NAT、HOST-ONLY三种网络模式的区别详解
  20. 阿里P7晒出工资单:狠补了这个,真香...

热门文章

  1. 2021最新手机号正则
  2. mtk2503 GPS/操作系统/主板设计方式资料大全
  3. php 限定字符长度,PHP中字符串的最大长度是多少?
  4. 微信小程序 — 生成二维码功能
  5. 判断是否为回文字符串
  6. 【数学建模】相关性分析 - 皮尔逊相关系数 斯皮尔曼相关系数
  7. 【IDEA】解决: alt+/快捷键 冲突的问题
  8. 阿里巴巴代码规范插件
  9. java模拟器vivo_vivo X3t驱动下载
  10. java jsp中文乱码怎么解决_分享JSP中文乱码解决方法