调用webservice

HttpURLConnection调用webservice,HTTP调用webservice,简单的webservice调用 以前调用webservice一般使用axis、axis2先生成java类后,直接引用,多方便。但是有的webservice接口非常的函数,生成的java类非常多,有没有一种非常简化的方法。 axis2有不生成类直接调用的方法,但是QName不容易找,每次查N久不到。有的反馈,使用CXF调用一样方便,但CXF还要使用maven下载jar,而这里是jdk自带的^_^.....。 ... 阅读详情

用Axis2创建调用webservice的客户端,创建java工程,引入以下axis2相关的jar包

axiom-api-1.2.11.jar
axiom-impl-1.2.11.jar
axis2-adb-1.5.5.jar
axis2-kernel-1.5.5.jar
axis2-transport-http-1.5.5.jar
axis2-transport-local-1.5.5.jar

commons-codec-1.3.jar
commons-httpclient-3.1.jar
commons-io.jar
commons-logging-1.1.1.jar
httpcore-4.0.jar
mail-1.4.jar
neethi-2.0.5.jar
wsdl4j-1.6.2.jar
XmlSchema-1.4.3.jar

 

创建调用服务类,应用axis2提供的类实现调用服务,代码如下:

package com.test;
 
importjava.util.Iterator;
importjavax.xml.namespace.QName;
importorg.apache.axiom.om.OMAttribute;
importorg.apache.axiom.om.OMElement;
importorg.apache.axis2.AxisFault;
importorg.apache.axis2.addressing.EndpointReference;
importorg.apache.axis2.client.Options;
importorg.apache.axis2.rpc.client.RPCServiceClient;
 
public classCallWebservice {
 
public StringgetData(String id,String name) {
        String result=null;
              
        //webService的调用地址       
        String srvcUrl ="http://localhost:8082/axis2/services/MyService";
        //操作的命名空间+“:”+操作名
        QName qname = new QName("http://test.jax.com", "getData");
        //传递的参数对象集
        Object param[] = new Object[] { id,name};
        try {
               //实例化远程服务调用客户端对象
               RPCServiceClient client = new RPCServiceClient();
               //实例化Options对象
               Options options = new Options();
               //设置Options对象的连接终端地址
               options.setTo(newEndpointReference(srvcUrl));
               //设置Options对象的操作事件对象
               options.setAction("urn:getData");
               //为远程服务调用客户端对象设置Options子对象
               client.setOptions(options);
               //传递参数,调用服务
                OMElement element =client.invokeBlocking(qname, param);
              
               result=element.getFirstElement().getText();
       
        }
        catch (AxisFault e) {
               e.printStackTrace();
        }
        return result;
}
 
//测试
public static voidmain(String[] args) {
 
        CallWebservice client=new CallWebservice();
       
        String rs =client.getData("1","张三");
         System.out.println(rs);
}
}



代码说明请看注释。

 

还有一种调用方式是通过axis2工具生成stub类,然后调用webservice,

 

打开cmd命令窗口,进入axis2的bin目录,输入命令:wsdl2java -uri http://localhost:8082/axis2/services/MyService?wsdl-p client -s -o stub

如图


 其中-url参数指定了wsdl文件的路径,可以是本地路径,也可以是网络路径。-p参数指定了生成的Java类的包名,-o参数指定了生成的一系列文件保存的根目录。在执行完上面的命令后,读者就会发现在当前目录下多了个stub目录,在."stub"src"client目录可以找到一个MyServiceStub.java文件,该文件复杂调用WebService,然后可以在程序中直接使用这个类,通过stub调用webservice代码如下:

package client;
 
import java.rmi.RemoteException;
 
importorg.apache.axis2.AxisFault;
 
importclient.MyServiceStub.GetDataResponse;
 
public class CallService {
 
        publicstatic void main(String[] args){
               //MyServiceStub中生成了一个getData(GetData getData)的方法
               //该方法的内部实现了调用发布的webservice服务中的getData()方法
              
               //首先创建参数对象
               MyServiceStub.GetData  getData = new MyServiceStub.GetData();
               //给参数赋值
               getData.setId("1");
               getData.setName("张三");
              
               try{
                       //实例化stub类
                       MyServiceStubstub = new MyServiceStub();
                       try{
                               //调用服务方法
                               GetDataResponser s = stub.getData(getData);
                               //返回值为String
                               Stringstr = rs.get_return();
                               System.out.println(str);
                       }catch (RemoteException e) {
                               //TODO Auto-generated catch block
                               e.printStackTrace();
                       }
               }catch (AxisFault e) {
                       //TODO Auto-generated catch block
                       e.printStackTrace();
               }
        }
}


C#调用WebService的方法 上面使用静态引用的方式调用WebService,但是这种方式有一个缺点:如果发布的WebService地址改变,那么就要重新添加WebService的引用。在日常工作中,如果涉及到与第三方进行接口对接,有的会使用WebService的方式,这篇文章主要讲解在.NET Framework中如何调用WebService。1.我们在配置文件里面添加配置,把WebService的地址、WebService提供的类名、要调用的方法名称,都写在配置文件里面。这种方式是通过添加静态引用的方式调用WebService。 阅读详情

相关推荐

【WebService】springboot整合cxf实现webService远程调用

一、前言        在做接口对接的时候需要接口以HTTPS和WebService的形式暴露,虽然最近这几年restful非常火爆,但在一些特定的领域或者一些老旧系统中仍然采用WebService的形式来实现远程通信。       上一篇博客讲了WebService实现远程调用,在博文的最后,自己阐述了关于那种客户端调用存在的问题,如大家有疑问,欢迎留言区指正。二、实现       废话上一篇博...

柠檬树 7424

java开发常用到的jar包总结

<!-- p {margin-bottom:0.08in} --> <!-- p {margin-bottom:0.08in} --> <!-- p {margin-bottom:0.08in} --> java开发中主要用到的jar包介绍 commons-io.jar: 可以看成是java.io的扩展,用来帮助进行IO

chaod5659的专栏 1万+

如何调用WebService

二,在项目中添加服务引用,.NET会自动生成与服务接口一致的API代码,我们只需要调用这些自动生成的代码,便可以获取服务结果。这与RPC原理一样,我们不需要关注中间的数据发送,数据解析等,就像调用本地方法一样。可以看到WebService的所有服务API,API的描述信息。点击API,进入该API的调试界面,输入方法参数,点击调用,即可看到API的运行结果。一,首先我们要验证这个地址是不是正确的有效的地址,其次我们要查看有哪些服务,每个API的用法,甚至可以执行API查看运行结果。【图:输入服务信息】...

4810

maven依赖无法导入爆红问题

1、属于公司内部依赖,当前项目没有连接到公司Maven私服2、之前本地已经下载过,但是下载中途失败了,产生了一个xxx.jar.lastUpdated文件,此时Maven不会对该依赖再下载。

weixin_55666891的博客 267

axiom-api-1.2.10.jar

axiom-api-1.2.10.jar包,开发使用,Axiom ,也就是Axis Object Model,Apache下一款XML对象模型 Axis2用Axiom处理soap文档和soap信息。 Axiom的一些特性: Lightweight(轻量),更少的内存需要。 Deferred building(延迟构建) Pull based(pull模式),OM基于StAX--标准的pull parser API 。 pull模式 Axiom采用pull解析方式,基于StAX(JSR173)。 SAX和DOM 都是基于push的解析方式,也就是说解析控制在parser本身。 Axiom和StAX紧密相关,要使用Axiom,StAX相关的jar包也必须在classpath下 。 性能 使用 XMLBench Document Model Benchmark 测试的结果表明,AXIOM 的性能和现有的高性能对象模型相当。但是 AXIOM 的内存占用要好于现有多数依靠 SAX 和/或 DOM 输入输出的对象模型。因此对于 Web 服务引擎或内存受限制设备这样的 XML 处理器,AXIOM

axiom-api.jar.zip

标签:axiom-api.jar.zip,axiom,api,jar.zip包下载,依赖包

常用的第三方jar包的说明

axis.jar SOAP引擎包 commons-discovery-0.2.jar 用来发现、查找和实现可插入式接口,提供一些一般类实例化、单件的生命周期管理的常用方法. jaxrpc.jar Axis运行所需要的组件包 saaj.jar 创建到端点的点到点连接的方法、创建并处理SOAP消息和附件的方法,以及接收和处理SOAP错误的方法. wsdl4j-1.5.1.jar Axis运...

gj716的专栏 2351

axiom-api-1.2.7.jar

axiom-api-1.2.7.jar为的是更好的发扬优良的精要的代码!

使用axis调用WebService,Java WebService调用工具类

Java 调用WebService工具类。导入即使用。

微枫Micromaple的博客 1万+

axiom-api-1.2.9-wso2v1.jar.zip

标签:axiom-api-1.2.9-wso2v1.jar.zip,axiom,api,1.2.9,wso2v1,jar.zip包下载,依赖包

axiom-api-1.2.8.jar

Bumped AXIOM version to 1.2.8 and added axiom-impl to the dependencies of d3_commons.

java调用webservice

Webservice调用方式:axis,soap详解调用webservice,可以首先根据wsdl文件生成客户端,或者直接根据地址调用,下面讨论直接调用地址的两种不同方式:axis和Soap,soap方式主要是用在websphere下axis方式调用:import java.util.Date;import java.text.DateFormat;import org.apache.

学习成就未来,知识左右命运... 2万+

axiom-api-1.2.7.jar.zip

标签:axiom-api-1.2.7.jar.zip,axiom,api,1.2.7,jar.zip包下载,依赖包

PB调用WebService方式总结

文章目录测试WebService接口SOAP协议调用HTTP方式调用SOAP通过inet对象调用通过XMLHTTP调用HTTP方式直接调用通过inet对象调用通过XMLHTTP调用PB WebService代理调用 测试WebService接口 WebService地址:http://localhost:7777/pbservice/testsrv.asmx?wsdl 接口定义: public f...

JasonFriday的博客 1万+

axiom-api-1.2.jar.zip

标签:axiom-api-1.2.jar.zip,axiom,api,1.2,jar.zip包下载,依赖包

RimWorld Mod开发避坑指南:从Defs命名规范到XML结构详解(附实战代码)

本文深入解析RimWorld Mod开发中Defs文件的编写规范与高级技巧,涵盖命名冲突预防、XML结构优化及高级功能实现。通过实战代码示例,帮助开发者避开常见陷阱,提升Mod兼容性与稳定性,特别适合RimWorld Mod开发者参考。

weixin_30790841的博客 451

vue 调用webservice_浅谈WebService的调用

0.前言前段时间,公司和电信有个合作,产品对接电信的某个平台,使用了WebService接口的调用,实现了业务受理以及单点登录。终于使用到了WebService,楼主还是比较兴奋的,目前功能已经上线,下面进行使用总结。WebService涉及到内容还是比较多的,涉及到发布和调用,有不少知识点,本文只是最简单的调用。1.WebService简介WebService是基于soap协议(简单对象访问协议...

weixin_39834406的博客 2271

别再用Excel画波特图了!用LTspice免费仿真软件,5分钟搞定电路传递函数分析

本文介绍了如何利用LTspice免费仿真软件高效绘制波特图,解决传统Excel绘图效率低、精度不足的问题。通过详细的操作步骤和实战案例,展示LTspice在电路传递函数分析中的自动化计算、专业级精度和完整特性展示等优势,帮助工程师快速完成频率响应分析。

weixin_42524226的博客 462

Webservice接口的生成及调用

最近项目上要对接一个Webservice形式的接口,因为以前一直没有对接过这种类型的,所以这次专门查了一些资料学习下

杀神Jack的博客 1万+

Zlib1.2.11源码编译(Win10+VS2019)

下载 下载网址: zlib Home Site 得到文件: 解压缩到“D:\SourceCodes\zlib-1.2.11” 使用CMake配置、生成并打开项目 将CMakeLists.txt拖入CMake,配置(Configure): 生成(Generate) 打开项目(Open Project),CMake调用VS2019打开项目 生成debug版本 构建项目ALL_BUILD。成功生成debug版本 在“D:\Sourc...

Alexabc3000的专栏 1895

从零搭建无人机仿真环境:ROS 2与Gazebo Fortress实战指南

本文提供了一份详细的无人机仿真环境搭建实战指南,基于Ubuntu 22.04系统,整合ROS 2 Humble与Gazebo Fortress两大核心工具。通过分步讲解安装、配置及桥接过程,并引入PX4飞控与XTDrone2工具链,帮助开发者快速构建一个稳定、高效的无人机算法开发与测试平台,有效降低真机测试的成本与风险。

water的专栏 430

Go调用webservice

Go调用webservice 最近写项目,切换在java,go,python之间……不过也好,同时对三种语言进行了对比,给我的感觉就是基础原理最重要,只要明白了原理,编程语言只不过是工具罢了。从速度和编码量来说,go无疑是最好的选择,无奈项目中使用oracle数据库较多,只得做备选;java毋庸置疑还是首选,毕竟与项目贴合;python主要是用于做一些快速类的数据分析,以满足业务对报表需要。下面就...

sinat_34898805的博客 4497

cosmos-curate工业级视频数据预处理引擎/终端用户指南( end-user-guide)

摘要:Cosmos-Curate是一个用于视频和自动驾驶数据处理的开源工具,提供从本地到集群的完整部署方案。文档针对三类用户:终端用户(配置运行现有管道)、开发者(修改/创建管道)和贡献者(改进代码库)。核心功能包括容器化设计(Docker+NVIDIA工具链)、多平台支持(本地/Slurm/云)、集成HuggingFace/NGC模型,以及可扩展的管道架构。使用需满足硬件(如Ampere架构GPU)和软件(Ubuntu22.04+Python3.10)要求,通过CLI工具构建镜像、下载模型并运行示例管道(

qq_45053161的博客 1204
上一篇: 应用Apache Axis2 实现Webservice发布
下一篇: Eclipse取消对JS文件的validation
johnnydev
博客等级 码龄15年 16粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值