小编典典

SOAP请求是一个XML文件,包含要发送到服务器的参数。

SOAP响应同样是一个XML文件,但是现在该服务希望提供给您一切。

基本上,WSDL是一个XML文件,解释了这两个XML的结构。

要使用Java实现简单的SOAP客户端,可以使用SAAJ框架(JSE 1.6及更高版本附带):

带有Java附件API的SOAP(SAAJ) 主要用于直接处理任何Web Service

API幕后发生的SOAP请求/响应消息。它允许开发人员直接发送和接收肥皂消息,而不是使用JAX-WS。

参见下面使用SAAJ进行SOAP

Web服务调用的工作示例(运行它!)。它称为此Web服务。

import javax.xml.soap.*;

public class SOAPClientSAAJ {

// SAAJ - SOAP Client Testing

public static void main(String args[]) {

/*

The example below requests from the Web Service at:

http://www.webservicex.net/uszip.asmx?op=GetInfoByCity

To call other WS, change the parameters below, which are:

- the SOAP Endpoint URL (that is, where the service is responding from)

- the SOAP Action

Also change the contents of the method createSoapEnvelope() in this class. It constructs

the inner part of the SOAP envelope that is actually sent.

*/

String soapEndpointUrl = "http://www.webservicex.net/uszip.asmx";

String soapAction = "http://www.webserviceX.NET/GetInfoByCity";

callSoapWebService(soapEndpointUrl, soapAction);

}

private static void createSoapEnvelope(SOAPMessage soapMessage) throws SOAPException {

SOAPPart soapPart = soapMessage.getSOAPPart();

String myNamespace = "myNamespace";

String myNamespaceURI = "http://www.webserviceX.NET";

// SOAP Envelope

SOAPEnvelope envelope = soapPart.getEnvelope();

envelope.addNamespaceDeclaration(myNamespace, myNamespaceURI);

/*

Constructed SOAP Request Message:

New York

*/

// SOAP Body

SOAPBody soapBody = envelope.getBody();

SOAPElement soapBodyElem = soapBody.addChildElement("GetInfoByCity", myNamespace);

SOAPElement soapBodyElem1 = soapBodyElem.addChildElement("USCity", myNamespace);

soapBodyElem1.addTextNode("New York");

}

private static void callSoapWebService(String soapEndpointUrl, String soapAction) {

try {

// Create SOAP Connection

SOAPConnectionFactory soapConnectionFactory = SOAPConnectionFactory.newInstance();

SOAPConnection soapConnection = soapConnectionFactory.createConnection();

// Send SOAP Message to SOAP Server

SOAPMessage soapResponse = soapConnection.call(createSOAPRequest(soapAction), soapEndpointUrl);

// Print the SOAP Response

System.out.println("Response SOAP Message:");

soapResponse.writeTo(System.out);

System.out.println();

soapConnection.close();

} catch (Exception e) {

System.err.println("\nError occurred while sending SOAP Request to Server!\nMake sure you have the correct endpoint URL and SOAPAction!\n");

e.printStackTrace();

}

}

private static SOAPMessage createSOAPRequest(String soapAction) throws Exception {

MessageFactory messageFactory = MessageFactory.newInstance();

SOAPMessage soapMessage = messageFactory.createMessage();

createSoapEnvelope(soapMessage);

MimeHeaders headers = soapMessage.getMimeHeaders();

headers.addHeader("SOAPAction", soapAction);

soapMessage.saveChanges();

/* Print the request message, just for debugging purposes */

System.out.println("Request SOAP Message:");

soapMessage.writeTo(System.out);

System.out.println("\n");

return soapMessage;

}

}

2020-09-08

java webservice soap请求_使用Java对WebService的SOAP请求相关推荐

  1. java项目----教务管理系统_基于Java的教务管理系统

    java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...

  2. java soap 解析_用Java解析SOAP响应

    我无法使用Java(使用Bonita Open Solution BPM)解析SOAP响应. 我有以下SOAP响应(在IBM Content Manager中搜索文档: SOAP响应返回1个匹配的文档 ...

  3. java是什么格式_是java格式

    错误:编码GBK的不可映射字符的解决办法 最近在重新补javaSE的基础,编辑器编写完代码以后,在控制台运行代码段的时候,出现了以下的错误提示:错误:编码GBK的不可映射字符 在通过查询谷哥和度娘以后 ...

  4. 学java的正确方法_学习Java编程 这10个技巧不容错过--中享思途

    这是一个国外大神20多年的经验总结出来的-- "任何可能出错的事情,最后都会出错." 这就是人们为什么喜欢进行"防错性程序设计"的原因.偏执的习惯有时很有意义, ...

  5. java 函数式编程 示例_功能Java示例 第1部分–从命令式到声明式

    java 函数式编程 示例 功能编程(FP)的目的是避免重新分配变量,避免可变的数据结构,避免状态并全程支持函数. 如果将功能性技术应用于日常Java代码,我们可以从FP中学到什么? 在这个名为&qu ...

  6. java ee开发环境_设置Java EE 6开发环境

    java ee开发环境 本教程简要说明了如何设置典型的环境来开发基于Java EE 6的应用程序. 除了可以正常工作的Windows XP客户端具有足够的CPU能力和内存外,本教程没有其他先决条件. ...

  7. java代码耗尽内存_有关Java内存溢出及内存消耗的小知识

    内存溢出原理: 我们知道,Java程序本身是不能直接在计算机上运行的,它需要依赖于硬件基础之上的操作系统和JVM(Java虚拟机). Java程序启动时JVM都会分配一个初始内存和最大内存给这个应用程 ...

  8. java多线程的优点_【java多线程的优点】

    作者:Jakob Jenkov        翻译:古圣昌            校对:欧振聪 尽管面临很多挑战,在java学习中多线程有一些优点使得它一直被使用.这些优点是: 资源利用率更好 程序设 ...

  9. java线程卡住排查_基于 Java 线程栈 排查问题

    除日志外,还有没有别的方式跟踪线上服务问题呢?或者,跟踪并排除日志里无法发现的问题? 方法当然是有的,就是通过现场快照定位并发现问题.我们所说的现场,主要指这两方面: Java 线程栈.线程栈是Jav ...

  10. java web认证考试_用Java实现Web服务器HTTP协议

    一.HTTP协议的作用原理 HTTP协议的作用原理包括四个步骤: 1.连接:Web浏览器与Web服务器建立连接.2.请求:Web浏览器通过socket向Web服务器提交请求.3.应答:Web浏览器提交 ...

最新文章

  1. centos7下安装maven
  2. ADSL+NAT配置实例
  3. 天才大猩猩可可去世,享年 46 岁
  4. 实用场景解析:那些漂亮的可视化图表都是如何做的?
  5. 机器学习11主成分分析
  6. java if (name!=null name!=),java中的NullPointerException异常
  7. mysql中group by的排序问题_Mysql之group by 和order by 一起用时的排序问题
  8. vue 3.x 中全局配置 axios
  9. Core Animation基础
  10. java条件运算查询学生成绩_java条件运算符的应用实例之成绩分级
  11. Unity3D面试总结
  12. Adobe Photoshop 2020 无法创建新建文档的两种解决方法
  13. Flutter Image 参数详解
  14. 三门问题(基于贝叶斯分析和python的实现)
  15. RSS是什么,RSS怎么玩,RSS原理是什么
  16. 正宇丨你选择了开始,就不要轻言放弃
  17. Qt5.12 QML——TextMetrics字体长度的测量指标
  18. tomcat安装不上
  19. 特权同学海量fpga入门进阶资料教程
  20. 【C语言】字符数组初始化方法

热门文章

  1. xlib/x11:创建一个监测键盘事件的窗口-3-fullscreen-windowed
  2. Django:ORM模型类,字段选项,Meta内部类,常见问题处理
  3. form表单属性名相同java_form表单提交 list对象给Java 后台结合
  4. python中的is_python中的is
  5. web前端基础(02html表格)
  6. java安装的时候无效参数,spring-boot 打成jar把后 启动时指定参数无效
  7. 面试pythone_Python面试考题
  8. hyper-v 安装centos7 后,虚拟机无法访问网络。
  9. 采用JAVA编写程序实现从文件读取操作
  10. Unity+SenseAR教程 | 用手势发射爱心2:加入发射方向【源码】