Axis是比较常用的WebService框架,该项目在2006实现了最终版,后面就没有更新了。文中demo所使用到的软件版本:Java 1.8.0_191、Axis 1.4。

1、准备

参考Java调用WebService方法总结(1)--准备工作

2、调用

2.1、call方式

/**
* call直接调用
* @param param
*/
public static void call(String param) {
try {
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new URL(url));
call.setEncodingStyle("utf-8");
//设置SOAPAction
call.setUseSOAPAction(true);
call.setSOAPActionURI("http://webxml.com.cn/toTraditionalChinese");
//设置Soap协议版本
call.setSOAPVersion(SOAPConstants.SOAP11_CONSTANTS);
//call.setSOAPVersion(SOAPConstants.SOAP12_CONSTANTS); call.addParameter(new QName(targetNamespace, "sText"), XMLType.XSD_STRING, ParameterMode.IN);
call.setOperationName(new QName(targetNamespace, "toTraditionalChinese"));
String result = (String) call.invoke(new Object[]{param});
System.out.println("call结果:" + result);
} catch (Exception e) {
e.printStackTrace();
}
}

2.2、WSDL2Java方式

2.2.1、org.apache.axis.wsdl.WSDL2Java生成代码

cmd中执行命令:

cd %AXIS_HOME%/lib
java -cp axis.jar;commons-logging-1.0.4.jar;commons-discovery-0.2.jar;jaxrpc.jar;wsdl4j-1.5.1.jar;saaj.jar org.apache.axis.wsdl.WSDL2Java http://www.webxml.com.cn/WebServices/TraditionalSimplifiedWebService.asmx?wsdl

生成的代码就在当前目录,包名为cn.com.webxml,文件如下:

2.2.2、用生成的代码调用WebService

/**
* 利用wsdl2java生成代码调用WebService
* @param param
*/
public static void wsdl2java(String param) {
try {
TraditionalSimplifiedWebService service = new TraditionalSimplifiedWebServiceLocator();
String result = service.getTraditionalSimplifiedWebServiceSoap().toTraditionalChinese(param);
System.out.println("wsdl2java soap1.1结果:" + result);
result = service.getTraditionalSimplifiedWebServiceSoap12().toTraditionalChinese(param);
System.out.println("wsdl2java soap1.2结果:" + result);
} catch (Exception e) {
e.printStackTrace();
}
}

2.2.3、完整代码

package com.inspur.ws;

import java.net.URL;

import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode; import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;
import org.apache.axis.soap.SOAPConstants; import cn.com.webxml.TraditionalSimplifiedWebService;
import cn.com.webxml.TraditionalSimplifiedWebServiceLocator; /**
*
* Axis调用WebService
*
*/
public class Axis {
private static String url = "http://www.webxml.com.cn/WebServices/TraditionalSimplifiedWebService.asmx?wsdl";
private static String targetNamespace = "http://webxml.com.cn/"; /**
* call直接调用
* @param param
*/
public static void call(String param) {
try {
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new URL(url));
call.setEncodingStyle("utf-8");
//设置SOAPAction
call.setUseSOAPAction(true);
call.setSOAPActionURI("http://webxml.com.cn/toTraditionalChinese");
//设置Soap协议版本
call.setSOAPVersion(SOAPConstants.SOAP11_CONSTANTS);
//call.setSOAPVersion(SOAPConstants.SOAP12_CONSTANTS); call.addParameter(new QName(targetNamespace, "sText"), XMLType.XSD_STRING, ParameterMode.IN);
call.setOperationName(new QName(targetNamespace, "toTraditionalChinese"));
String result = (String) call.invoke(new Object[]{param});
System.out.println("call结果:" + result);
} catch (Exception e) {
e.printStackTrace();
}
} /**
* 利用wsdl2java生成代码调用WebService
* @param param
*/
public static void wsdl2java(String param) {
try {
TraditionalSimplifiedWebService service = new TraditionalSimplifiedWebServiceLocator();
String result = service.getTraditionalSimplifiedWebServiceSoap().toTraditionalChinese(param);
System.out.println("wsdl2java soap1.1结果:" + result);
result = service.getTraditionalSimplifiedWebServiceSoap12().toTraditionalChinese(param);
System.out.println("wsdl2java soap1.2结果:" + result);
} catch (Exception e) {
e.printStackTrace();
}
} public static void main(String[] args) {
call("小学");
wsdl2java("大学");
}
}

Java调用WebService方法总结(4)--Axis调用WebService的更多相关文章

  1. Java调用WebService方法总结(5)--Axis2调用WebService

    Axis2是新一点Axis,基于新的体系结构进行了全新编写,有更强的灵活性并可扩展到新的体系结构.文中demo所使用到的软件版本:Java 1.8.0_191.Axis2 1.7.9. 1.准备 参考 ...

  2. Java调用WebService方法总结(7)--CXF调用WebService

    CXF = Celtix + XFire,继承了Celtix和XFire两大开源项目的精华,是一个开源的,全功能的,容易使用的WebService框架.文中所使用到的软件版本:Java 1.8.0_1 ...

  3. Java调用WebService方法总结(6)--XFire调用WebService

    XFire是codeHaus组织提供的一个WebService开源框架,目前已被Apache的CXF所取代,已很少有人用了,这里简单记录下其调用WebService使用方法.官网现已不提供下载,可以到 ...

  4. Java调用WebService方法总结(3)--wsimport调用WebService

    wsimport是JDK自带的把WSDL转成Java的工具,可以很方便的生成调用WebService的代码.文中所使用到的软件版本:Java 1.8.0_191. 1.准备 参考Java调用WebSe ...

  5. Java调用WebService方法总结(2)--JAX-WS调用WebService

    用JAX-WS(Java API for XML Web Services)调用WebService不需要引入其他框架,都是JDK自带的:文中所使用到的软件版本:Java 1.8.0_191.Dom4 ...

  6. Webservice初体验:axis调用wsdl和document解析

    Neo君遇到了需要调用webservice接口的情况,然而作为一只小白对这方面了解困乏,经过摸索,完成了一个小的Demo,记录下. 一:背景 同事给了我一个webservice地址,打开后后缀是&qu ...

  7. 既然 start() 方法会调用 run() 方法,为什么我们调用 start() 方法,而不直接调用 run() 方法?

    当你调用 start() 方法时,它会新建一个线程然后执行 run() 方法中的代码.如果直接调用 run() 方法,并不会创建新线程,方法中的代码会在当前调用者的线程中执行

  8. JAVA学习笔记--方法中的参数调用是引用调用or值调用

    文献来源:<JAVA核心技术卷Ⅰ>,第4章第5节 (没有相关书籍的可看传送门) ps:测试demo因为偷懒,用的是String对象 结论:Java使用的是对象的值引用.即将任何对象所在内存 ...

  9. Java调用WebService方法总结(1)--准备工作

    WebService是一种跨编程语言.跨操作系统平台的远程调用技术,已存在很多年了,很多接口也都是通过WebService方式来发布的:本系列文章主要介绍Java调用WebService的各种方法,使 ...

随机推荐

  1. Oracle in不超过1000,List<String>参数拆分,代码举例

    public Map<String,Map<String, Object>> getConsInfo(List<String> consIdList) { Map& ...

  2. 第2课第7节_Java面向对象编程_内部类_P【学习笔记】

    摘要:韦东山android视频学习笔记  1.什么是内部类:在类的内部定义一个类,内部类可以访问类的私有属性 class Outer{ ; class Inner{ public void print ...

  3. Typescript 开发环境的最佳实践

    Typescript 开发环境的最佳实践 0️⃣ git init(略) 1️⃣️️ 初始化:$ yarn add -D ts-node typescript 2️⃣ 生成 tsconfig.json ...

  4. git - gitHub生成Markdown目录

    就是github-markdown-toc.go. github-markdown-toc.go Github地址 如果你有GO语言(又是你)的编译环境,可以尝试自己编译,如果没有,可以直接下载编译好 ...

  5. Swift编码总结6

    1.UILabel的minimumScaleFactor: 需要UIlabel根据字数多少来减小字体大小,使得UIlabel能够显示全所有的文字.你需要做的就是设置minimumScaleFactor ...

  6. ssh登录服务器提示错误no hostkey alg

    ssh登录服务器提示错误no hostkey alg ssh root@192.168.1.100 -vvv 提示失败: no hostkey alg 登录到192.168.1.100服务器 rm - ...

  7. smb文件共享

    一.服务端: #安装 yum install samba samba-common samba-client -y systemctl start smb ##开启samba服务 systemctl ...

  8. 【视频开发】四大图像库:OpenCV/FreeImage/CImg/CxImage

    1.对OpenCV 的印象:功能十分的强大,而且支持目前先进的图像处理技术,体系十分完善,操作手册很详细,手册首先给大家补计算机视觉的知识,几乎涵盖了近10年内的主流算法: 然后将图像格式和矩阵运算, ...

  9. mysql left join和union结合的用法

    left join和union结合的用法子查询union 然后加个括号设置个别名 (union自动去除 重复的 ) <pre>select o.nickName,o.sex,o.provi ...

  10. python excel导入到数据库

    import xlrd import MySQLdb def inMySQL(file_name): wb = xlrd.open_workbook(file_name) sh = wb.sheet_ ...