axis2调用webservice
先说一下基本的知识点。
SOAP: Simple Object AccessProtocol。它是一种用于访问 Web 服务的协议。因为 SOAP 基于XML 和 HTTP ,其通过XML 来实现消息描述,然后再通过 HTTP 实现消息传输。SOAP 是用于在应用程序之间进行通信的一种通信协议。它包括四个部分:SOAP封装(envelop),封装定义了一个描述消息中的内容是什么,是谁发送的,谁应当接受并处理它以及如何处理它们的框架;SOAP编码规则(encoding rules),用于表示应用程序需要使用的数据类型的实例; SOAP RPC表示(RPC representation),表示远程过程调用和应答的协定;SOAP绑定(binding),使用底层协议交换信息。
axis:Axis本质上就是一个SOAP引擎,提供创建服务器端、客户端和网关SOAP操作的基本框架。能够处理SOAP和来自W3C的各种XML标准。
在axis2调用webservice服务之前,需要做几项准备工作:
1、 导入axis2的包。pom.xml文件如下:
1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 3 <modelVersion>4.0.0</modelVersion> 4 5 <groupId>com.bigbang.cxf</groupId> 6 <artifactId>cxfclient</artifactId> 7 <version>0.0.1-SNAPSHOT</version> 8 <packaging>jar</packaging> 9 10 <name>cxfclient</name> 11 <url>http://maven.apache.org</url> 12 13 <properties> 14 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 15 <axis.version>1.7.5</axis.version> 16 </properties> 17 18 <dependencies> 19 <dependency> 20 <groupId>junit</groupId> 21 <artifactId>junit</artifactId> 22 <version>3.8.1</version> 23 <scope>test</scope> 24 </dependency> 25 26 <!-- axis2 --> 27 <dependency> 28 <groupId>org.apache.axis2</groupId> 29 <artifactId>axis2-kernel</artifactId> 30 <version>${axis.version}</version> 31 </dependency> 32 <dependency> 33 <groupId>org.apache.axis2</groupId> 34 <artifactId>axis2-adb</artifactId> 35 <version>${axis.version}</version> 36 </dependency> 37 <dependency> 38 <groupId>org.apache.axis2</groupId> 39 <artifactId>axis2-transport-http</artifactId> 40 <version>${axis.version}</version> 41 </dependency> 42 <dependency> 43 <groupId>org.apache.axis2</groupId> 44 <artifactId>axis2-transport-local</artifactId> 45 <version>${axis.version}</version> 46 </dependency> 47 48 </dependencies> 49 <build> 50 <plugins> 51 <plugin> 52 <groupId>org.mortbay.jetty</groupId> 53 <artifactId>maven-jetty-plugin</artifactId> 54 <version>6.1.26</version> 55 <configuration> 56 <webAppConfig> 57 <contextPath>/</contextPath> 58 </webAppConfig> 59 </configuration> 60 </plugin> 61 62 <plugin> 63 <groupId>org.apache.maven.plugins</groupId> 64 <artifactId>maven-compiler-plugin</artifactId> 65 <configuration> 66 <source>1.8</source> 67 <target>1.8</target> 68 </configuration> 69 </plugin> 70 </plugins> 71 </build> 72 </project>
View Code
2、获取wsdl文件或者xml文件,访问webservice的访问地址,在浏览器中复制所有的文字,保存为xml或者wsdl文件。
3、使用axis2生成客户端调用的代码需要eclipse的插件支持,下载axis2-eclipse-codegen-plugin-1.7.5插件之后,根据如下操作生成客户端调用代码:
然后会在目标目录下生成如下文件,并且是按照修改的包名来存放文件的:
将文件导入到项目中,编写一个类来做测试请求:
Main.java代码如下:
1 /** 2 * 3 */ 4 package com.bigbang.cxf.main; 5 6 import com.bigbang.cxf.cxfclient.Login; 7 import com.bigbang.cxf.cxfclient.LoginE; 8 import com.bigbang.cxf.cxfclient.LoginResponse; 9 import com.bigbang.cxf.cxfclient.LoginResponseE; 10 import com.bigbang.cxf.cxfclient.LoginServiceImplServiceStub; 11 12 /** 13 * @author pzj 2017年5月18日 上午9:29:57 14 * 15 */ 16 public class Main { 17 18 /** 19 * @param args 20 */ 21 public static void main(String[] args) { 22 try { 23 LoginServiceImplServiceStub serviceStub = new LoginServiceImplServiceStub( 24 "http://localhost:8080/service/login"); 25 LoginE loginE = new LoginE(); 26 Login loginParam = new Login(); 27 loginParam.setName("bigbang"); 28 loginParam.setPassword("123456"); 29 loginE.setLogin(loginParam); 30 LoginResponseE responseE = serviceStub.login(loginE); 31 LoginResponse response = responseE.getLoginResponse(); 32 String returStr = response.get_return(); 33 System.out.println(returStr); 34 } catch (Exception e) { 35 e.printStackTrace(); 36 } 37 38 } 39 40 }
启动webservice服务之后,再运行main代码,在控制台将会输出如下语句:
bigbang登录成功!密码是:123456
至此,整个axis2调用webservice接口成功!
转载于:https://www.cnblogs.com/bigbang92/p/webservice_axis2.html
axis2调用webservice相关推荐
- java使用axis2调用webservice接口实例
说明:我目前的项目环境是struts2+spring+mybatis+oracle,以下代码是java使用axis2调用webservice接口实例. import javax.xml.namespa ...
- 多次使用axis2调用webservice后,报连接超时错误
使用Axis2d的RPCServiceClient调用webservice,连续调用几次web服务后,后台报错,如下所示: org.apache.commons.httpclient.Conn ...
- Axis2调用WebService服务的3种方式(rpc调用不好用)
第一,RPC方式,不生成客户端代码,引入相应的axis2的jar包(不好用) 注意:暂时没有成功调用,没有参数传递时远程调用成功,当有参数传递时远程调用失败: package com.ming.axi ...
- 【AXIS2 调用WebService报错】The given SCOPAction ..... does not math an operation
场景: 与第三方使用webserver进行数据对接,本地使用axis2生成的客户端程序调用远程服务 问题描述 说明:axis2 版本 1.7.9 调用报错: The given SCOPAction ...
- axis2 调用webservice
maven配置:主要引用包及plugins <properties><axis2.version>1.6.1</axis2.version></propert ...
- java axis2 调用webservice 接口_Axis2 调用Webservice 接口 | 学步园
调用方法: TranslatorString 输入中文,翻译成 拼音.英文. 参数:wordKey(中文) 现在要做,翻译词:[随便],代码如下: package cn.com.webxml; im ...
- Axis2调用webservice报错 AxisFault: Timeout waiting for connection
记录一次正式环境服务报错排查记录. 某日被通知线上服务告警,错误日志全是 Timeout waiting for connection 首先梳理项目架构,项目很简单,就是一个使用axis2构建的web ...
- WebService大讲堂之Axis2(8):异步调用WebService
在前面几篇文章中都是使用同步方式来调用WebService.也就是说,如果被调用的WebService方法长时间不返回,客户端将一直被阻塞,直到该方法返回为止.使用同步方法来调用WebService ...
- java 调用.net webservice axis2_java利用axis2调用.net写的webservice,传递自定义的实体类参数...
利用axis2可以很方便的自动生成客户端代码,同时对复杂参数类型的传递也很方便,本文的服务端以.net开发,有一个自定义的实体类作为参数,客户端用java,简单介绍一下利用axis2的wsdl2jav ...
- axis2 java.net.url_axis,axis2调用.net的webservice
package testClick.src.test;import javax.xml.namespace.QName;import org.apache.axiom.om.OMAbstractFac ...
最新文章
- 彻底理解OkHttp - OkHttp 源码解析及OkHttp的设计思想
- 1种策略就能控制多类模型,华人大二学生提出RL泛化方法,LeCun认可转发 | ICML 2020...
- 一个人的渺小与微不足道。
- Silverlight+WCF 实战-网络象棋最终篇之对战视频-下篇[客户端发送与服务端中转](六)...
- cmake (4)多个子目录
- centos7 apache2.4 测试
- 前台性能和服务器性能是什么,前端性能优化指南[2]--什么是Web性能?
- 基于CAS的低时延队列实现(原理示例)
- 如何在JSP里添加删除cookie
- CORS - 引入预检请求的动机是什么?
- SVN部署与简单使用
- windows配置pip加速器
- python opencv 二值化 计算白色像素点并计算比例输出可视化
- 云表中表单配置内嵌浏览器
- 微信小程序|基于小程序实现人脸识别对比
- 深度可分离卷积解析 - MobileNetV1
- 饿了么api接口 php,饿了么美团开放平台接入
- 3.5 计算机网络之介质访问控制(静态划分信道、FDM、TDM、STDM、WDM、CDM)、(动态划分信道、ALOHA、CSMA、CSMA/CD、CSMA/CA)、令牌传递协议
- MongoDB可视化工具之Studio 3T的使用
- MySQL安装QT连接MySQL学习记录