话不多说,直接干货.
下文是部署到线上的服务端,别错过重点咯!!!
本地端:
以下是本地发布WebService服务端,用于测试:
第一步
导入依赖:
第二步:
搭建WebService服务端接口
第三步:
继承接口,编写实现类
第四步(可选,只是用于测试):
此处的ip填写本地局域网ip地址即可,端口号必须是本地windows已开放的端口
第五步:
启动测试类
使用soapui工具获取请求参数格式
将?替代成需要传的参数即可.
第六步
至此就完成了本地的服务端搭建
线上端
以下是用于部署到线上的方式,大同小异,但需要注意很多细节
第一步
导入依赖:
第二步:
搭建WebService服务端接口
第三步:
继承接口,编写实现类
第四步
此处IP地址最好放到配置文件中,此处就不再显示
ps:此处继承runnable接口并放置在run方法中是为了部署到服务器即可实现自动开启端口供客户端访问并传输数据
第五步
此处步骤也是我遇坑最大的部分!!!
部署到线上之后,同样使用postman调用接口,但访问就是失败,看日志也没有报错
关键步骤:
需要去注意你的ip地址在服务器上是否开放对应的端口!!!
检测端口是否并开放并实现成功运行的步骤如下:
(1) 在linux中输入 netstat -anp | grep 8096
如果没有返回值,则说明该端口并未开放,所以不能使用
(2) 在linux中输入 netstat -nltp
如果没有可用的端口号,那么就需要重新开放一个端口用来搭建服务端
(3) 在linux中输入 nc -lp8096& 会得到返回的pid
此命令是我试过的最方便的开放端口的命令,但此命令执行会使8096开放后被nc占用,因此需要执行第(4)步
(4) 在linux中输入 kill -9 pid
由此便彻底开放此端口
(5) 再次调用webservice服务端,就发现能够调通了
(6) 或者调用如下命令实现端口的开放和使用
=====================文档更新=========================
近期将服务部署在另一个项目上,遇到一个问题就是部署没有任何问题,但当我用SoapUI或者Postman以及浏览器访问时,就是访问失败!如图:
后来我在服务器里用curl命令访问,就成功了,如图:
通过查询,才发现,原来是部署服务的时候我们的实施没有关闭防火墙,因此执行如下命令即可:
第一步:停止firewalld服务
systemctl stop firewalld
第二步:禁用firewalld服务
systemctl mask firewalld
centos有自带的防火墙 把它关闭后浏览器就正常访问了
**********************************************行尾*********************************************************
小白作文,希望早日成为像大家一样厉害的程序猿