webservice服务一般都是使用WSDL(web service descriptive language)文件的样式来发布的,在WSDL文件里面,包含这个webservice暴露在外面可供使用的接口。

wsdl文本解析

1、直接AXIS调用远程的web service

第一步:引入相关依赖

 <dependencies><!--spring web Service的包--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web-services</artifactId><version>1.5.2.RELEASE</version></dependency><!--spring web service wsdl包--><dependency><groupId>wsdl4j</groupId><artifactId>wsdl4j</artifactId><version>1.6.3</version></dependency><!-- axis 1.4 jar start --><dependency><groupId>org.apache.axis</groupId><artifactId>axis</artifactId><version>1.4</version></dependency><dependency><groupId>commons-discovery</groupId><artifactId>commons-discovery</artifactId><version>0.2</version><exclusions><exclusion><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.apache.axis</groupId><artifactId>axis-jaxrpc</artifactId><version>1.4</version></dependency><dependency><groupId>org.apache.axis</groupId><artifactId>axis-saaj</artifactId><version>1.4</version></dependency><dependency><groupId>wsdl4j</groupId><artifactId>wsdl4j</artifactId><version>1.4</version></dependency></dependencies>

第二步:写代码

package demo;import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;
import org.apache.axis.handlers.soap.SOAPService;import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;
import javax.xml.rpc.ServiceException;
import java.net.MalformedURLException;
import java.nio.charset.StandardCharsets;
import java.rmi.RemoteException;public class Test04 {public static void main(String[] args) throws RemoteException, ServiceException, MalformedURLException {//wsdl地址String endpoint ="http://localhost:57772/soap/JHIPLIB.SOAP.BS.HL7V3Service.cls";//命名空间String namespace = "http://goodwillcis.com";//服务名String serviceName = "HL7V3Service";//方法名String methodName = "HIPMessageServer";//soapActionString soapAction = "http://goodwillcis.com/JHIPLIB.SOAP.BS.HL7V3Service.HIPMessageServer";Service service = new Service();Call call = (Call) service.createCall();//设置响应超时call.setTimeout(3000);//设置地址call.setTargetEndpointAddress(endpoint);//设置方法名call.setOperationName(new QName(namespace,methodName));//设置参数call.addParameter("Message", XMLType.XSD_STRING, ParameterMode.IN);String message = new String("<req>测试</req>");Object [] obj = {message};//设置返回类型call.setReturnType(XMLType.XSD_STRING);//启用soapcall.setUseSOAPAction(true);//设置soapActioncall.setSOAPActionURI(soapAction);//设置服务名SOAPService soapService = new SOAPService();soapService.setName(serviceName);call.setSOAPService(soapService);String ret = (String) call.invoke(obj);System.out.println("返回消息:"+ret);}}

2、采用代理类形式调用webservice

第一步:直接引用wsdl地址(或者wsdl文本)生成相应的代理类。

第二步:代码调用。

public static void main(String[] args) throws MalformedURLException {HL7V3Service service = new HL7V3Service();HL7V3ServiceSoap soap = service.getHL7V3ServiceSoap();String msg = "<req>3333</req>";String result = soap.hipMessageServer(msg);System.out.println(result);}

参考:https://blog.csdn.net/qq_35124535/article/details/62226585

Java调用WebService的几种方式相关推荐

  1. vue 调用webservice_调用webService的几种方式

    转自:http://blog.csdn.net/u011165335/article/details/51345224 一.概览 方式1: HttpClient:可以用来调用webservie服务,也 ...

  2. java开发webservice的几种方式

    为什么80%的码农都做不了架构师?>>>    webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,相当于做个记录. 1.Axis ...

  3. java调用打印机的两种方式

    一.用java中自带的PrintServiceLookup实现 import javax.imageio.ImageIO; import javax.print.*; import javax.pri ...

  4. java调用webservice axis

    webservice,先让我们来理解一下这个名词.简单点说调用其他网站的资源的一种方法.所以,通俗地说,Web service(Web服务)就是让你的网站可以使用其他网站的资源,比如在网页上显示天气. ...

  5. java调用WebService(客户端)

    java调用WebService(客户端) 看下了网上大部分都是写java来编写WS服务端,写了下JAVA的调用端. WebService可以有Get. Post.Soap.Document四种方式调 ...

  6. Java中创建对象的四种方式

    为什么80%的码农都做不了架构师?>>>    Java中创建对象的四种方式 (1) 用new语句创建对象,这是最常见的创建对象的方法.    (2) 运用反射手段,调用java.l ...

  7. 创建和应用Java包文件的两种方式(转)

    创建和应用Java包文件的两种方式(转) <Java编程艺术>章节选登.作者:高永强 清华大学出版社 (即将出版) 12.1  包--package    ... 12.1.1  包命名规 ...

  8. Java字符串连接的几种方式

    Java字符串连接的几种方式 字符串表现的几种方式 StringBuffer和StringBuilder及String的继承关系 字符串的连接 1.String的连接方法 可以看出连接方式是新建了一个 ...

  9. Java解析Xml的三种方式总结

    转自:http://blog.csdn.net/zjf280441589/article/details/50613881 XML解析技术有两种 DOM SAX DOM方式  根据XML的层级结构在内 ...

  10. Java格式化倒计时的两种方式

    Java格式化倒计时的两种方式 第一种方式 /*** 入参是一个每秒减小1的秒数* 返回一个格式化的时间* * 该方法具有局限性,他在时间大于1个小时的时候,会返回错误的时间* 因为该方法调用了Dat ...

最新文章

  1. 团队实践,我们是怎么用敏捷开发工具Leangoo的
  2. ansys scade suite 2020中文版
  3. python连接oracle
  4. WPF数据绑定(1-简单数据绑定)
  5. linux安装12c oem,OEM12C(12.1.0.5)安装插件监控mysql(linux)
  6. Python学习:使用Python解释器
  7. 【WinCE】流设备驱动简介及GPIO驱动的实现
  8. NOI入门级数学: 数及其运算 数的进制之二进制
  9. tesseract 提升识别质量
  10. jQuery - Ajax解决跨域问题
  11. 【oracle】changePerm.sh
  12. 机器学习基础(二十六)—— 将 SVM 推广到多类问题
  13. NCBI基本引物设计、(初学者)
  14. 专业的统计分析软件 IBM SPSS Statistics 26.0.2 Mac版(内附安装包网盘链接)
  15. WIN10使用VEH+硬件断点实现不修改代码完成破解
  16. 前端coursor设置为pointer在移动端点击会出现蓝色背景解决
  17. PQ分区出错,由Ghost来补救的办法(转)
  18. 数字IC设计学习笔记_8位7段数码管1
  19. excel函数技巧:MAX在数字查找中的应用妙招
  20. Arduino应用开发——LCD显示GIF动图

热门文章

  1. 全新ThihkPHP聚合支付系统源码+兼容全部易支付
  2. python爬虫设计实验
  3. cpt怎么转换成HTML,Excel直接转成模板cpt
  4. ACM32 MCU元器件AD封装库
  5. u深度重装系统详细教程_U深度U盘安装原版win7系统的图文教程
  6. 『Others』WPS广告关闭
  7. lisp 标注螺纹孔_cad中螺纹孔怎么标注
  8. linux img工具,线刷包img提取工具(simg2img win)
  9. 计算机英语教程第6版,计算机英语教程(第6版)
  10. 初学者学习opengl是用红宝书好还是蓝宝书好?