Java调用WebService方法总结(4)--Axis调用WebService
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的更多相关文章
- Java调用WebService方法总结(5)--Axis2调用WebService
Axis2是新一点Axis,基于新的体系结构进行了全新编写,有更强的灵活性并可扩展到新的体系结构.文中demo所使用到的软件版本:Java 1.8.0_191.Axis2 1.7.9. 1.准备 参考 ...
- Java调用WebService方法总结(7)--CXF调用WebService
CXF = Celtix + XFire,继承了Celtix和XFire两大开源项目的精华,是一个开源的,全功能的,容易使用的WebService框架.文中所使用到的软件版本:Java 1.8.0_1 ...
- Java调用WebService方法总结(6)--XFire调用WebService
XFire是codeHaus组织提供的一个WebService开源框架,目前已被Apache的CXF所取代,已很少有人用了,这里简单记录下其调用WebService使用方法.官网现已不提供下载,可以到 ...
- Java调用WebService方法总结(3)--wsimport调用WebService
wsimport是JDK自带的把WSDL转成Java的工具,可以很方便的生成调用WebService的代码.文中所使用到的软件版本:Java 1.8.0_191. 1.准备 参考Java调用WebSe ...
- Java调用WebService方法总结(2)--JAX-WS调用WebService
用JAX-WS(Java API for XML Web Services)调用WebService不需要引入其他框架,都是JDK自带的:文中所使用到的软件版本:Java 1.8.0_191.Dom4 ...
- Webservice初体验:axis调用wsdl和document解析
Neo君遇到了需要调用webservice接口的情况,然而作为一只小白对这方面了解困乏,经过摸索,完成了一个小的Demo,记录下. 一:背景 同事给了我一个webservice地址,打开后后缀是&qu ...
- 既然 start() 方法会调用 run() 方法,为什么我们调用 start() 方法,而不直接调用 run() 方法?
当你调用 start() 方法时,它会新建一个线程然后执行 run() 方法中的代码.如果直接调用 run() 方法,并不会创建新线程,方法中的代码会在当前调用者的线程中执行
- JAVA学习笔记--方法中的参数调用是引用调用or值调用
文献来源:<JAVA核心技术卷Ⅰ>,第4章第5节 (没有相关书籍的可看传送门) ps:测试demo因为偷懒,用的是String对象 结论:Java使用的是对象的值引用.即将任何对象所在内存 ...
- Java调用WebService方法总结(1)--准备工作
WebService是一种跨编程语言.跨操作系统平台的远程调用技术,已存在很多年了,很多接口也都是通过WebService方式来发布的:本系列文章主要介绍Java调用WebService的各种方法,使 ...
随机推荐
- 怎么在app上添加图标和文字
window.showAddMenu = this.addSearch let data = { type: 'ICON', text: 'https://static-image.lexing360 ...
- fluent加载第三方(C++,Fortan等)动态链接库
这里我介绍一种比较简单的方法,首先我们从ANSYS Fluent UDF Manual上随便找一段正确的UDF,下面这段UDF取自ANSYS 18的ANSYS Fluent UDF Manual,位于 ...
- GO语言GIN框架入门
Gin框架介绍 Gin是一个用Go语言编写的web框架.它是一个类似于martini但拥有更好性能的API框架, 由于使用了httprouter,速度提高了近40倍. 中文文档 Gin框架安装与使用 ...
- python安装redis库
pip install redis 没有相应的资源 可以到redisio上找到clients, https://redis.io/clients 如下所示 下图中带黄五角星的为官方推荐的: 下 ...
- MySQL服务问题
Mysql使用命令 net start mysql net stop mysql 出现如下报错 经过查询得知可能是安装时修改过服务名称 查看服务名称的方法:这台电脑右键->管理->服务和应 ...
- 【大数据应用技术】作业十二|Hadoop综合大作业
本次作业的要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/3339 前言 本次作业是在<爬虫大作业>的基础上进行的 ...
- ElementUi tree 指定节点是否显示复选框
场景:树的内容是省份下面的城市有酒店 需求:只能多选酒店(为了删除它们),至于为啥不能选省份或者城市更加灵活的去删除相应酒店,这你得去问后台0.0,他只弄了根据酒店id去删除.嗯,连创建酒店的时候级联 ...
- svn忽略obj
于是换成第二种方式 Properties => News => Other => svn:ignore 将你要过滤的文件夹放入文本框里面,此处因为要过滤的是bin和obj所以各占一行 ...
- Spring 整合 myBatis
思路 数据库连接池交给 Spring 管理 SqlSessionFactory 交给 Spring 管理 从 Spring 容器中直接获得 mapper 的代理对象 步骤 创建工程 导入 jar 创建 ...
- 013-centos7 常用命令--查看当前用户的4种方法
一.概述 4种查看系统用户信息(通过编号(ID))的方法. 1.1. 使用w命令查看登录用户正在使用的进程信息 w命令用于显示已经登录系统的用户的名称,以及他们正在做的事.该命令所使用的信息来源于/v ...