强烈推荐一个大神的人工智能的教程:http://www.captainai.net/zhanghan
【前言】
最近在做一个EJB相关的项目,在做的过程用到了远程调用的相关东西,自己进行一下梳理和总结,在此与大家分享。
【相关流程】
一、对EJB和Jboss两者梳理:
1、小感:大多数情况下,提到两者中的一者,就会提起另一者;刚开始的时候自己也是对这两个东西比较混淆,最近在项目中用出了些问题,自己查找资料将其梳理一下,原来一些模糊的地方逐渐清晰起来;
2、目前对两者的理解:EJB是J2EE的十三个规范之一,主要是解决分布式系统的一些问题;Jboss是最常用的开源的支持所有EJB规范的应用服务器;
二、远程调用的流程:
1、应用场景模块A远程调用模块B中的jichu服务;
2、相关流程:
·模块B的相关流程
(1)首先需要在B模块中的Service实现的类头写上@Remote(内容为所继承接口的名称)的注解:
(2)模块B开发人员将代码提交到代码管理器(SVN,git等)上;
(3)自动化部署工具(Jenkins等)将SVN上的代码部署到相应的Jboss的服务器上,Jboss会根据@Remote和@Stateless两个注解解析出该类和该接口的名称及所在的路径;可通过Jboss的服务器查看到其对外提供的服务,如下所示:
(4)温馨小提示:Jboss控制台(在此以jboss-eap-6.2为例)访问相关内容:
①查看Jboss控制台的访问地址---形式为http://localhost:9990(在此以本地为例,若是服务器的话需要将localhost改为相应服务器的IP并需要知道服务器配置的访问端口),配置访问的端口文件如下:
②登录用户名和密码的设置:
A.添加用户操作如下:
B.查看相应的文件(在此以mgmt-user.properties为例):
B.访问后登录即可:
·模块A的相关流程
(1)在模块A中查看Jboss的配置文件---Jboss-ejb-client.xml
(2)查看Jboss安装目录下的配置文件---standalone.xml,根据(2)中获取的【remote-ejb-connection-jc】值查找服务的地址:
(3)根据(2)中获取的IP地址【192.168.22.247】进入到服务器相应的Jboss控制台查看B模块发布的地址:
(4)在模块A中调用的时候需要写的和Jboss上写的一致:
3、远程调用原则:若本地Jboos中部署被调用方模块(即上列中的模块B)则就近原则先调用本地部署,若本地没有部署则通过上述流程调用服务器上的服务。
【总结】
1、多思考,多实践;
2、不谋全局者,不足以谋一域;
3、多和别人交流,在和别人交流的时候会对某一个技术点的理解不断加深。