先说一下基本的知识点。

  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相关推荐

  1. java使用axis2调用webservice接口实例

    说明:我目前的项目环境是struts2+spring+mybatis+oracle,以下代码是java使用axis2调用webservice接口实例. import javax.xml.namespa ...

  2. 多次使用axis2调用webservice后,报连接超时错误

        使用Axis2d的RPCServiceClient调用webservice,连续调用几次web服务后,后台报错,如下所示: org.apache.commons.httpclient.Conn ...

  3. Axis2调用WebService服务的3种方式(rpc调用不好用)

    第一,RPC方式,不生成客户端代码,引入相应的axis2的jar包(不好用) 注意:暂时没有成功调用,没有参数传递时远程调用成功,当有参数传递时远程调用失败: package com.ming.axi ...

  4. 【AXIS2 调用WebService报错】The given SCOPAction ..... does not math an operation

    场景: 与第三方使用webserver进行数据对接,本地使用axis2生成的客户端程序调用远程服务 问题描述 说明:axis2 版本 1.7.9 调用报错: The given SCOPAction ...

  5. axis2 调用webservice

    maven配置:主要引用包及plugins <properties><axis2.version>1.6.1</axis2.version></propert ...

  6. java axis2 调用webservice 接口_Axis2 调用Webservice 接口 | 学步园

    调用方法: TranslatorString  输入中文,翻译成 拼音.英文. 参数:wordKey(中文) 现在要做,翻译词:[随便],代码如下: package cn.com.webxml; im ...

  7. Axis2调用webservice报错 AxisFault: Timeout waiting for connection

    记录一次正式环境服务报错排查记录. 某日被通知线上服务告警,错误日志全是 Timeout waiting for connection 首先梳理项目架构,项目很简单,就是一个使用axis2构建的web ...

  8. WebService大讲堂之Axis2(8):异步调用WebService

     在前面几篇文章中都是使用同步方式来调用WebService.也就是说,如果被调用的WebService方法长时间不返回,客户端将一直被阻塞,直到该方法返回为止.使用同步方法来调用WebService ...

  9. java 调用.net webservice axis2_java利用axis2调用.net写的webservice,传递自定义的实体类参数...

    利用axis2可以很方便的自动生成客户端代码,同时对复杂参数类型的传递也很方便,本文的服务端以.net开发,有一个自定义的实体类作为参数,客户端用java,简单介绍一下利用axis2的wsdl2jav ...

  10. axis2 java.net.url_axis,axis2调用.net的webservice

    package testClick.src.test;import javax.xml.namespace.QName;import org.apache.axiom.om.OMAbstractFac ...

最新文章

  1. 彻底理解OkHttp - OkHttp 源码解析及OkHttp的设计思想
  2. 1种策略就能控制多类模型,华人大二学生提出RL泛化方法,LeCun认可转发 | ICML 2020...
  3. 一个人的渺小与微不足道。
  4. Silverlight+WCF 实战-网络象棋最终篇之对战视频-下篇[客户端发送与服务端中转](六)...
  5. cmake (4)多个子目录
  6. centos7 apache2.4 测试
  7. 前台性能和服务器性能是什么,前端性能优化指南[2]--什么是Web性能?
  8. 基于CAS的低时延队列实现(原理示例)
  9. 如何在JSP里添加删除cookie
  10. CORS - 引入预检请求的动机是什么?
  11. SVN部署与简单使用
  12. windows配置pip加速器
  13. python opencv 二值化 计算白色像素点并计算比例输出可视化
  14. 云表中表单配置内嵌浏览器
  15. 微信小程序|基于小程序实现人脸识别对比
  16. 深度可分离卷积解析 - MobileNetV1
  17. 饿了么api接口 php,饿了么美团开放平台接入
  18. 3.5 计算机网络之介质访问控制(静态划分信道、FDM、TDM、STDM、WDM、CDM)、(动态划分信道、ALOHA、CSMA、CSMA/CD、CSMA/CA)、令牌传递协议
  19. MongoDB可视化工具之Studio 3T的使用
  20. MySQL安装QT连接MySQL学习记录

热门文章

  1. Vue webpack打包后,css样式发生改变或不起作用
  2. python模块_第七讲:Python模块
  3. 安卓EventBus的使用方法
  4. jQuery常用语法笔记
  5. ORM框架 Dapper
  6. mysql触发器编程_mysql之触发器trigger详解
  7. access抓取数据_网页数据抓取之当当网
  8. bootstrapmodel确认操作框_光伏电站EL检测仪的操作流程
  9. LINUX下载编译libsrtp-1.5.0
  10. 研究黑洞内部的一种方法