本篇概览
-
《Docker 下 Java 文件上传服务三部曲》的主要内容是 Java 的文件上传服务实战,由三篇文章组成,内容分别如下:
-
准备工作(即本章),包括上传文件的客户端开发、创建 Tomcat 容器(支持在线部署),安装 wireshark;
-
服务端编码,创建三个应用,实战 SpringMVC、Apache fileupload 库,SpringBoot 三种场景下的文件上传服务;
-
wireshark 抓包,分析文件上传服务过程中的传输详情;
实战环境
整个环境由两台电脑组成,操作系统分别是 win10 和 ubuntu16,如下图:
如上图,在 win10 电脑上运行一个 java 类,发起 POST 请求将文件提交到 ubuntu 电脑上的 Docker 容器中,该容器运行着上传文件的 web 服务,在 win10 电脑上安装有 wireshark,用来分析这个上传文件的 POST 请求;
注:客户端和服务端部署在不同的机器上,这样方便 wireshark 抓包,您也可以用 vmware 在 win10 上装一个 ubuntu 虚拟机,不过此时 wireshark 抓包前请注意选择正确的网卡(vmware 虚拟出的那个);
-
开发环境的具体信息如下:
-
操作系统:win10,ubuntu16;
-
JDK:1.8.0_151;
-
maven:3.3.3;
-
Docker 版本:17.03.2-ce;
-
wireshark 版本:2.4.4;
源码下载
-
上传文件的客户端源码,您可以在 GitHub 下载,地址和链接信息如下表所示:
-
这个 git 项目中有多个目录,本次所需的资源放在 uploadfileclient,如下图红框所示:
本章内容列举
-
本章的工作是为后面章节的文件服务的运行和验证做准备的,包含以下步骤:
-
在 win10 电脑上,安装 wireshark;
-
在 win10 电脑上,创建 maven 工程 uploadfileclient,里面有一个 java 类 UploadFileClient,后续所有上传文件的请求都是这个类的 main 方法完成的;
-
我们要验证 UploadFileClient.java 能不能正常工作(上传文件全靠它了),所以在 ubuntu 电脑上创建一个文件服务的 docker 容器,用于接收 UploadFileClient 类上传的文件;
-
在 win10 电脑上,运行 UploadFileClient.java 的 main 方法,看能否把文件上传到步骤 4 中搭建的文件服务器上;
-
下一章的文件服务应用会做成 war 包运行在 Tomcat 上,所以我们要在 Docker 下创建一个 Tomcat 容器,并且该容器支持在线部署 war 包;
安装 wireshark
-
请在官网下载 wireshark 安装文件,地址:https://www.wireshark.org/#download