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. [后渗透]Metasploit使用基础

    0x00 简介 Metasploit是一个免费的.可下载的框架,通过它可以很容易地获取.开发并对计算机软件漏洞实施攻击.它本身附带数百个已知软件漏洞的专业级漏洞攻击工具.当H.D. Moore在200 ...

  2. Vue简单归纳

    目录 Vue.JS Vue.JS介绍 概述 MVVM模式 示例图 快速入门 事件绑定 什么是事件 单击事件绑定 键盘事件 按键修饰符 鼠标事件 事件修饰符 数据绑定 插值 v-text v-bind ...

  3. unity2019新建LWRP项目出错:Failed to resolve project template

    原因不详,但是在C盘创建项目的确会出现这个问题,改到D盘或E盘就没这个问题了

  4. Java基础 switch 简单示例

        JDK :OpenJDK-11      OS :CentOS 7.6.1810      IDE :Eclipse 2019‑03 typesetting :Markdown   code ...

  5. C++实现委托机制(三)——lambda表达式封装

    C++.引言:              其实原本没打算写这一章的,不过最后想了想,嗯还是把lambda表达式也一并封装进去,让这个委托也适应lambda表达式的注册.不过在之前还是需要先了解lamb ...

  6. PAT 甲级 1077 Kuchiguse (20 分)(简单,找最大相同后缀)

    1077 Kuchiguse (20 分)   The Japanese language is notorious for its sentence ending particles. Person ...

  7. FromXml 支付回调 xml 转数组

    public function xx(){ $xml = '<xml><appid><![CDATA[xxxxxxxxxxxxx]]></appid> ...

  8. [LeetCode] 219. Contains Duplicate II 包含重复元素 II

    Given an array of integers and an integer k, find out whether there are two distinct indices i and j ...

  9. Jenkins - 参数化构建

    1 - 设置 根据输入的参数来执行不同的构建过程. 参数TIME作为环境变量,可以被引用. 项目的首页会出现" Build with Parameters"功能链接,没有了&quo ...

  10. Javaweb的概念与C/S、B/S体系结构

    大家好,乐字节的小乐又来了,今天的文章是接上次<客户端请求服务器端通信, Web 编程发展基础|乐字节>,这次是讲述Javaweb的介绍和C/S.B/S体系结构. 一.Javaweb的概念 ...