ego电商项目:Rmi远程服务发布
一、创建Maven Project
1.rmi-rescource 提供远程服务对象接口
2.rmi-provider 提供远程项目
3.rmi-customer 消费远程项目
二、代码实现
1.rmi-resource
package com.facai.service;import java.rmi.Remote;
import java.rmi.RemoteException;/** 创建需要发布的服务对应的业务接口* Remote接口用于标识可以从非本地虚拟机调用的接口*/
public interface UserService extends Remote{public String helloRmi(String name) throws RemoteException;
}
2.rmi-provider
提供远程服务的对象UserServiceImpl
package com.facai.service.impl;import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;import com.facai.service.UserService;
/** 发布的服务对应的实现类*/
public class UserServiceImpl extends UnicastRemoteObject implements UserService {public UserServiceImpl() throws RemoteException {super();// TODO Auto-generated constructor stub}@Overridepublic String helloRmi(String name) throws RemoteException {// TODO Auto-generated method stubreturn "hello"+name;}}
启动类
package com.facai.app;import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;import com.facai.service.UserService;
import com.facai.service.impl.UserServiceImpl;public class ProviderApp {public static void main(String[] args) {/** 完成远程服务的发布* 将远程服务发布在本地的8888端口*/try {LocateRegistry.createRegistry(8888);//远程服务访问的urlString name="rmi://localhost:8888/rmi";//创建一个提供具体服务的对象UserService userService=new UserServiceImpl();//给提供远程服务的对象提供urlNaming.bind(name,userService);System.out.println("======发布rmi远程服务======");} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}
}
3.remi-customer
package com.facai.app;import java.rmi.Naming;
import java.rmi.Remote;import com.facai.service.UserService;public class CustomerApp {public static void main(String[] args) {try{//发布的远程服务的访问urlString name="rmi://localhost:8888/rmi";//通过发布的远程服务的url,获得远程服务的代理对象UserService userService=(UserService) Naming.lookup(name);System.out.println("获得的远程服务的代理对象"+userService.getClass().getName());//通过远程服务的代理对象调用远程服务方法String result=userService.helloRmi("rmi");System.out.println("result="+result);}catch(Exception e){e.getStackTrace();}}}
注:rmi-provider和rmi-customer要对rmi-resource添加依赖
**
三、使用到的API
**
Remote接口:标识某个方法可以被远程调用|
UnicastRemoteObject类:实现Remote远程对象的导出
Naming:给提供远程服务的对象绑定url
通过远程的url,获得提供远程服务的代理对象
LocalRegistry类:指定发布远程服务的方法接口
ego电商项目:Rmi远程服务发布相关推荐
- K8S 部署电商项目
Ingress 和 Ingress Controller 概述 在 k8s 中为什么会有 service 这个概念? Pod 漂移问题 Kubernetes 具有强大的副本控制能力,能保证在任意副本( ...
- Web实战——电商项目
文章目录 电商项目实践 1 准备数据 模块说明 实践过程 相关技术 2 搭建 maven 私服(nexus) 模块说明 实践过程 相关技术 3 Dubbo 服务 模块说明 实践过程 相关技术 4 后台 ...
- 电商项目构建springcloud
0.学习目标 了解电商行业 了解乐优商城项目结构 能独立搭建项目基本框架 能参考使用ES6的新语法 1.了解电商行业 学习电商项目,自然要先了解这个行业,所以我们首先来聊聊电商行业 1.1.项目分类 ...
- Java项目:网上电商项目(前后端分离+java+vue+Springboot+ssm+mysql+maven+redis)
源码获取:博客首页 "资源" 里下载! 一.项目简述 本系统功能包括: 一款基于Springboot+Vue的电商项目,前后端分离项目,前台后台都有,前台商品展示购买,购物车分类, ...
- 面试专题-电商项目面试篇
找工作面试的过程中,项目将会是整个流程的核心灵魂,也是能在面试中能让面试官尽快认同你的一个强有力的依据,所以在面试中把电商项目清晰的表述出来是极为关键的. 1.说说你最近做的这个项目的背景,简单的介绍 ...
- 400集高并发分布式超级电商项目实战
带走一盏渔火 让他温暖我的双眼 留下一段真情 让它停泊在枫桥边 久违的你 一定保存着那套网盘 许多年以后 躺在网盘里的视频 依然尘封未动 涛声依旧不见当初的夜晚 今天的你我 怎样重复昨天的故事 涛哥说 ...
- 微服务电商项目技术全解析
一.项目介绍 7d-mall-microservice 是一套微服务电商,其是在开源电商项目 mall-swarm 上进行了改造,采用了 Spring Cloud Hoxton & Aliba ...
- 《高楼的性能工程实战课》微服务电商项目技术全解析
文章目录 一.项目介绍 二.整体结构 三.预备知识 1.什么是 SpringCloud ? 2.Spring .SpringBoot 和 Spring Cloud 的关系 3.Spring Cloud ...
- 电商项目相关面试问题及答案
请描述一下这个系统? [回答技巧] 从3个方面来回答这个问题: |–系统背景及系统概述 |–系统包括的业务模块及主业务流程 |–责任模块 [回答示例] 第一个方面:系统背景及系统概述 优购时尚商城是香 ...
- 微信小程序电商项目源代码开放连载二三事
大家好,我发布的微信小程序电商项目连载视频,正式进入实战化阶段了,为了让大家更好的去学习微信小程序开发,我在gitbub上面,开放了源代码.随着视频的连载更新,我会逐步将源代码进行更新. 源代码发布地 ...
最新文章
- pytorch 打印模型参数
- Linux中介绍who命令实例
- Linux易混名词整理和相关操作
- 简述一下动态sql的执行原理_简述一下Pogo Pin电连接器的设计原理和考虑因素
- 前端学习(1975)vue之电商管理系统电商系统之渲染参数下的可选项
- Adobe illustrator 抽丝剥茧选中多个点 - 连载 13
- Nagios 监控windows性能计数器
- 大二物竞金牌转北大计算机,物理竞赛保送去北大还是清华?
- Quotations
- LeetCode 152. 乘积最大子序列(动态规划)
- 从酒店服务员到世界500强大数据工程师,月薪4K到年薪40W,我经历了什么?
- Poisson 分布
- 【iTools】iTools Index
- 【微信文章封面】微信分别设置封面图和分享图的技巧
- Qt例子学习笔记 - Examples/Qt-6.2.0/charts/callout
- 关于mysql项目经验怎么写_数据库管理员岗位项目经历怎么写
- 二叉排序树(二叉搜索树)
- “安心工资条”荣获2017阿里钉钉创SaaS挑战赛总冠军
- 用Python画大学物理实验曲线
- mfs 分布式文件系统