Spring4.x整合Axis1.4发布WebService服务

Spring4.x整合Axis1.4发布WebService服务

文章目录

  • 一、服务端部署
    • 1. 在web.xml文件中添加映射路径和spring监听
    • 2. 添加spring-axis.xml配置文件
    • 3. 添加server-config.wsdd配置文件
    • 4. 对外发布服务外壳类
    • 5. 添加接口类
    • 6. 添加接口逻辑实现类
    • 7. 浏览器测试
  • 二、客户端部署
    • 2.1 axis1.4 工具类封装(企业版本)
    • 2.2 运行main方法测试
  • 三、多接口服务发布
    • 3.1 server-config.wsdd 添加服务
    • 3.2 添加对外暴露的外壳类
    • 3.3 添加服务接口
    • 3.4 添加服务接口逻辑处理类
    • 3.5 在spring-axis.xml 添加本地bean
    • 3.6 发布服务
    • 3.7 支持多个发布路径
    • 本文源码下载:

一、服务端部署

1. 在web.xml文件中添加映射路径和spring监听

<!-- webservices接口 axis 需要引入的 Servlet Start --><servlet><servlet-name>AxisServlet</servlet-name><servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class></servlet><servlet-mapping><servlet-name>AxisServlet</servlet-name><!-- 接口调用的后续路径设置 --><url-pattern>/services/*</url-pattern></servlet-mapping><!-- webservices接口 axis 需要引入的 Servlet End -->
<!-- 新增spring容器配置 Start --><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/config/spring-*.xml</param-value></context-param><!-- 新增spring容器配置 End -->

注:
1、spring监控如果不添加,服务发布正常,可以省略
2、文件中的扫描文件路径根据项目具体位置而定

2. 添加spring-axis.xml配置文件

  • 文件名自定义即可,作用是本地bean
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.0.xsd"><bean   id="nFisCommonWebServiceImpl"   class="com.gblfy.service.impl.GblfyCommonWebServiceImpl" />  
</beans>

注:
1、 id默认是接口实现类的类名小写,也可以小写 自定义
2、 在web.xml配置文件中要配置spring监听

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.0.xsd"><bean id="webServiceImpl"class="com.gblfy.axis.service.impl.WebServiceImpl" />
</beans>

在这里插入图片描述

3. 添加server-config.wsdd配置文件

<?xml version="1.0" encoding="UTF-8"?>
<deployment xmlns="http://xml.apache.org/axis/wsdd/"xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"><globalConfiguration><parameter name="adminPassword" value="admin" /><parameter name="sendXsiTypes" value="true" /><parameter name="sendMultiRefs" value="true" /><parameter name="sendXMLDeclaration" value="true" /><parameter name="axis.sendMinimizedElements" value="true" /><requestFlow><handler type="java:org.apache.axis.handlers.JWSHandler"><parameter name="scope" value="session" /></handler><handler type="java:org.apache.axis.handlers.JWSHandler"><parameter name="scope" value="request" /><parameter name="extension" value=".jwr" /></handler></requestFlow></globalConfiguration><handler name="Authenticate"type="java:org.apache.axis.handlers.SimpleAuthenticationHandler" /><handler name="LocalResponder"type="java:org.apache.axis.transport.local.LocalResponder" /><handler name="URLMapper"type="java:org.apache.axis.handlers.http.URLMapper" /><service name="AdminService" provider="java:MSG"><parameter name="allowedMethods" value="AdminService" /><parameter name="enableRemoteAdmin" value="false" /><parameter name="className"value="org.apache.axis.utils.Admin" /><namespace>http://xml.apache.org/axis/wsdd/</namespace></service><service name="Version" provider="java:RPC"><parameter name="allowedMethods" value="getVersion" /><parameter name="className" value="org.apache.axis.Version" /></service><transport name="http"><requestFlow><handler type="URLMapper" /><handlertype="java:org.apache.axis.handlers.http.HTTPAuthHandler" /></requestFlow></transport><transport name="local"><responseFlow><handler type="LocalResponder" /></responseFlow></transport><!—北京接口服务  start--><service name="GblfyCommonServiceShell" provider="java:RPC"><parameter name="allowedMethods" value="*" /><parameter name="className"value="com.gblfy.controller.webservice.GblfyCommonServiceShell" /></service><!—北京接口服务  end-->
</deployment>

在这里插入图片描述
只修改截图部分即可!

4. 对外发布服务外壳类

  • 添加与server-config.wsdd配置文件,相对应对外发布服务外壳类
package com.gblfy.axis.controller;import javax.xml.rpc.ServiceException;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.remoting.jaxrpc.ServletEndpointSupport;import com.gblfy.axis.service.IWebService;public class WebServiceShell extends ServletEndpointSupport {@Autowiredprivate ApplicationContext applicationContext;@Autowiredprivate IWebService iWebService;// 注入bean@Overrideprotected void onInit() throws ServiceException {// 初始化Spirng 配置applicationContext = super.getApplicationContext();iWebService = (IWebService) applicationContext.getBean("webServiceImpl");}public String webServiceForBJ(String tReqXml) throws Exception {return iWebService.webServiceForBJ(tReqXml);}
}

在这里插入图片描述

5. 添加接口类

package com.gblfy.axis.service;public interface IWebService {/*** 北京业务接口* * @param xml* @return* @throws Exception*/public String webServiceForBJ(String tReqXml) throws Exception;
}

在这里插入图片描述

6. 添加接口逻辑实现类

package com.gblfy.axis.service.impl;import com.gblfy.axis.service.IWebService;public class WebServiceImpl implements IWebService {@Overridepublic String webServiceForBJ(String tReqXml) throws Exception {return "接收到服务了!!!";}
}

在这里插入图片描述

7. 浏览器测试

效果图截图:
http://localhost:8081/spring-axis/services/WebServiceShell?wsdl
在这里插入图片描述

二、客户端部署

2.1 axis1.4 工具类封装(企业版本)

package com.gblfy.axis.utils;import java.net.MalformedURLException;import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;
import javax.xml.rpc.ServiceException;import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.ibatis.javassist.tools.rmi.RemoteException;/*** webService客户端*/
public class WebServiceClientUtil {public static void main(String[] args) throws MalformedURLException, RemoteException, ServiceException, Exception {String url = "http://localhost:8081/spring-axis/services/WebServiceShell?wsdl";String namespace = "http://localhost:8081/spring-axis/services/WebServiceShell?wsdl";String method = "webServiceForBJ";String tReqXml = "客户端调用webservice服务方成功了!!!";WebServiceClientUtil a = new WebServiceClientUtil();String dataResponse = a.RequestToResponse(url, namespace, method, tReqXml);System.out.println("%%%%%%%%%$$$$$" + dataResponse);}/*** * @param url       WebService地址* @param namespace 命名空间* @param method    方法* @param tReqXml   请求报文* @return resXml 响应报文* @throws ServiceException* @throws MalformedURLException* @throws RemoteException* @throws Exception*/public String RequestToResponse(String url, String namespace, String method, String tReqXml)throws ServiceException, MalformedURLException, RemoteException, Exception {Service service = new Service();Call call;String resXml = null;call = (Call) service.createCall();call.setTargetEndpointAddress(new java.net.URL(url));String subUrl = url.substring(url.lastIndexOf("/"));System.out.println("转发路径标志==" + subUrl.substring(1, subUrl.length()));// 针对北京业务添加判断,针对服务端有@Webservice 注解,有明确的参数因此,需要在客户端设置此设置// if判断 针对某个webservice服务 默认不走判断if ("BJServiceForClaim".equals(subUrl.substring(1, subUrl.length()))) {call.addParameter("xmlStr", org.apache.axis.Constants.XSD_STRING, ParameterMode.IN);call.setReturnType(org.apache.axis.Constants.XSD_STRING);}call.setOperationName(new QName(namespace, method));// 这是要调用的方法resXml = (String) call.invoke(new Object[] { tReqXml.toString() });return resXml;}}

在这里插入图片描述
在这里插入图片描述

2.2 运行main方法测试

控制台输出

转发路径标志==WebServiceShell?wsdl
%%%%%%%%%$$$$$接收到服务了!!!

在这里插入图片描述

三、多接口服务发布

3.1 server-config.wsdd 添加服务

在这里插入图片描述

3.2 添加对外暴露的外壳类

3.3 添加服务接口

3.4 添加服务接口逻辑处理类

3.5 在spring-axis.xml 添加本地bean

在这里插入图片描述

3.6 发布服务

3.7 支持多个发布路径

在web.xml文件中

  • 默认 /services/*
  • 新增加/gblfy/services/*
    在这里插入图片描述

本文源码下载:

链接https://pan.baidu.com/s/1fVe3Fq_n4Ru9CHG_XCXVOg
提取码0iv1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/523976.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里云亚太市场份额第一;AWS宣布在香港推出新区域;Facebook出成绩单;微软在美国西部开建第五个大型云平台...

戳蓝字“CSDN云计算”关注我们哦&#xff01;重磅先知 Gartner&#xff1a;阿里云亚太市场份额第一AWS宣布在香港推出新的区域一直在水逆的Facebook出成绩单微软在美国西部开建第五个大型云平台重磅快报Gartner&#xff1a;阿里云亚太市场份额第一4月24日&#xff0c;市场研究…

1s完成 大文件分割方案

按行数分割方案&#xff1a; 执行命令&#xff1a; split -l 1000 i.txt -d -a 4 gblfy_格式&#xff1a;split -l 行数 文件名 -d -a 4 gblfy_ 解析&#xff1a; 1、每个文件1000行(-l 1000)&#xff1b; 2、文件名称后缀系数不是字母而是数字&#xff08;-d&#xff09;&…

git通过指令查看某一个已经修改的文件的改动

方法 提交文件的时候提示文件发生了变动&#xff0c;这时若是要查看文件具体发生了什么变动&#xff0c;只需在命令行输入下述指令便可&#xff1a;git diff 文件名。 上面截图中可以通过git status来查看该项目中各文件的状态&#xff0c;可以看到文件 modified: SceneModule…

开发者如何写好技术简历?

戳蓝字“CSDN云计算”关注我们哦&#xff01;技术头条&#xff1a;干货、简洁、多维全面。更多云计算精华知识尽在眼前&#xff0c;get要点、solve难题&#xff0c;统统不在话下&#xff01;文章来源一位实验室朋友的投稿&#xff0c;斩获BAT头条等公司的offer,金三银四一份漂亮…

Linux系统查看文件中关键词出现的次数

在Linux系统中的文件目录下&#xff1a; 执行以下命令&#xff1a; grep -o KeyWord 03.txt | wc -l格式&#xff1a;grep -o ‘关键词’ fileName | wc -l 注&#xff1a; ‘KeyWord’是指定的关键词&#xff1b; 03.txt是指定的文本 | wc -l是统计次数

设计模式--中介者模式

实验19&#xff1a;中介者模式 本次实验属于模仿型实验&#xff0c;通过本次实验学生将掌握以下内容&#xff1a; 1、理解中介者模式的动机&#xff0c;掌握该模式的结构&#xff1b; 2、能够利用中介者模式解决实际问题。 [实验任务]&#xff1a;虚拟聊天室 在“虚拟聊天…

qt自定义窗口,其绘制的窗口边框线显示不全

引言 自定义窗口&#xff0c;该窗口包含标题栏&#xff0c;默认整个窗口的边框线为蓝色&#xff0c;当点击该窗口的时候&#xff0c;窗口的边框线便为红色。程序在运行的时候&#xff0c;窗口的边框线只显示了左右两边的线&#xff0c;没有显示上下边的线。 示例 效果&#…

防火墙contos6.8操作手册

一、基本操作&#xff1a; 查看防火墙状态 service iptables status 停止防火墙 service iptables stop 启动防火墙 service iptables start 重启防火墙 service iptables restart 永久关闭防火墙 chkconfig iptables off 永久关闭后重启 chkconfig iptables on 二、查看…

漫画:996的本质是什么?

戳蓝字“CSDN云计算”关注我们哦&#xff01;技术头条&#xff1a;干货、简洁、多维全面。更多云计算精华知识尽在眼前&#xff0c;get要点、solve难题&#xff0c;统统不在话下&#xff01;从前&#xff0c;有一个卖苹果的小贩&#xff0c;小贩每天都能拥有24个神奇的苹果。他…

qt整个窗口上绘制矩形与在窗口的子控件上绘制矩形

引言 创建一个基于QDialog的项目&#xff0c;自动生成ui文件&#xff0c;此时再添加新文件&#xff0c;创建一个基于QWidget的ui类&#xff0c;此类具有自定义标题栏&#xff0c;让该自定义类显示在窗口Dialog上&#xff0c;一开始具有红色的边框线&#xff0c;且四角围绕四个…

1分钟 Zookeeper 快速入门_windows环境

下载zookeeper 官网链接:https://zookeeper.apache.org/ 修改conf/zoo.cfg 文件名

跳槽季:跳和不跳之外的第三选择

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者&#xff1a;珍妮兔转自&#xff1a;轻松做软件每年的这个时候&#xff0c;都是跳槽的黄金季节。很多公司的招聘计划&#xff0c;也是在这个时间启动。今年的“跳槽季”&#xff0c;氛围却与往年不同。滴滴裁员2000&#xff0c;…

Dubbo Zookeeper Quick Start

新建一个父工程 选择Maven 快速构建项目 按图操作&#xff1a; 添加子项目(服务方) 添加子项目(消费方) 一个父工程&#xff0c;2个子项目&#xff08;服务方&#xff0c;消费方&#xff09;&#xff0c;基本就完成了 在2个子项目中需要在main手动创建resour…

异构计算=未来?一文带你秒懂3大主流异构

戳蓝字“CSDN云计算”关注我们哦&#xff01;技术头条&#xff1a;干货、简洁、多维全面。更多云计算精华知识尽在眼前&#xff0c;get要点、solve难题&#xff0c;统统不在话下&#xff01;作者&#xff1a;Pasca来源&#xff1a;蛋蛋团&#xff08;ID&#xff1a;dandan_tuan…

Git Windows安装手册

文章目录1. 下载、安装、验证2、Next3. 选择安装位置4. 选择组件5. 创建开始菜单目录6. 选择Git使用的默认编辑器7 . Next8. 选择HTTPS传输后端9. 配置行结束转换10. Next11. 配置终端模拟器以与 Git Bash 一起使用12. git安装验证&#xff1a;1. 下载、安装、验证 git官网&am…

Nutanix,在转型的道路上越走越远 | 人物志

戳蓝字“CSDN云计算”关注我们哦&#xff01;人物志&#xff1a;观云、盘点、对话英雄。以云计算风云人物为核心&#xff0c;聚焦个人成长、技术创新、产业发展&#xff0c;还原真实与鲜活&#xff01;一年多以前&#xff0c;以超融合设备厂商之名起家的Nutanix&#xff0c;开始…

使用自己的域名解析CSDN博客

本文主要介绍怎样使用自己购买的域名指向CSDN博客 通常来说技术人员都会创建个自己的技术博客&#xff0c;总结下工作中的问题&#xff0c;经验等等&#xff0c;不过某些博客的访问链接的确是不太容易记忆或者输入&#xff0c;对我们分享造成一定的困扰&#xff0c;本文通过配置…

qt中设置QTabWidget,QGroupBox,QScrollArea的样式

引言 本文对标题中所述的三种控件的样式使用样式表来设置其外观。该样式表没有采用样式文件&#xff0c;而是在程序中直接使用函数setStyleSheet()来设置控件的样式。 前期准备 ui文件中各控件的结构如下图&#xff1b; 1.QGroupBox 从上面可以看到&#xff0c;QGroupBox属…

分布式精华问答 | 如何实现分布式系统的高可用性?

布式的处理方式越来越受到业界的青睐——计算机系统正在经历一场前所未有的从集中式向分布式架构的变革。今天&#xff0c;我们就来看看关于分布式的精华问答吧&#xff01;1Q&#xff1a;什么是分布式缓存&#xff1f;A&#xff1a;为了提高性能和响应时间&#xff0c;在应用程…

qt将生成的程序打包在他人电脑上可用

引言 生成的可执行文件exe后&#xff0c;想在没有安装qtCreate编译器的电脑上用&#xff0c;这里可以使用qt自带的打包工具来添加所需的库到运行程序所在的目录。 步骤 将生成的exe文件拷贝到一个空文件夹下&#xff0c;若程序使用过程中用到其他项目成员的库文件&#xff0…