java 简单解析wsdl
static void resolve(String wsdl) throws Exception {
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    factory.setNamespaceAware(true);
    DocumentBuilder builder = factory.newDocumentBuilder();
    InputStream in = new ByteArrayInputStream(wsdl.getBytes("utf-8"));
    InputStreamReader isr = new InputStreamReader(in, "utf-8");
    InputSource is = new InputSource(isr);
    Document doc = builder.parse(is);
    System.out.println("root:" + doc.getFirstChild().getNodeName());
    NodeList nodeList = doc.getElementsByTagNameNS("http://schemas.xmlsoap.org/wsdl/", "definitions");
    Node root = nodeList.item(0);
    NamedNodeMap map = root.getAttributes();
    Node targetNs = map.getNamedItem("targetNamespace");
    System.out.println("名称空间:" + targetNs.getNodeValue());
    String wsdlNsUri = "http://schemas.xmlsoap.org/wsdl/";
    NodeList bindingNodes = doc.getElementsByTagNameNS(wsdlNsUri, "binding");
    Node bindingNode = bindingNodes.item(0);
    String serviceName = bindingNode.getAttributes().getNamedItem("name").getNodeValue();
    System.out.println("服务名:" + serviceName);
    NodeList serviceNodes = doc.getElementsByTagNameNS(wsdlNsUri, "service");
    Node serviceNode = serviceNodes.item(0);
    NodeList portNodes = serviceNode.getChildNodes();
    String bindingAddress = null;
    Node addressNode = portNodes.item(1).getChildNodes().item(1);
    bindingAddress = addressNode.getAttributes().getNamedItem("location").getNodeValue();
    System.out.println("调用地址:" + bindingAddress);
    NodeList portTypeNodes = doc.getElementsByTagNameNS(wsdlNsUri, "portType");
    Node portType = portTypeNodes.item(0);
    NodeList opNodes = portType.getChildNodes();
    for (int i = 0; i < opNodes.getLength(); i++) {
        Node node = opNodes.item(i);
        if (node.getNodeType() == Node.ELEMENT_NODE && node.getLocalName().equalsIgnoreCase("operation")) {
            String methodName = node.getAttributes().getNamedItem("name").getNodeValue();
            System.out.println("方法名:" + methodName);
        }
    }
}
java 简单解析wsdl的更多相关文章
- [ 转载 ]  Java基础10--关于Object类下所有方法的简单解析
		关于Object类下所有方法的简单解析 类Object是类层次结构的根类,是每一个类的父类,所有的对象包括数组,String,Integer等包装类,所以了解Object是很有必要的,话不多说,我们直 ... 
- Java XML解析工具 dom4j介绍及使用实例
		Java XML解析工具 dom4j介绍及使用实例 dom4j介绍 dom4j的项目地址:http://sourceforge.net/projects/dom4j/?source=directory ... 
- 对 cloudwu 简单的 cstring 进行简单解析
		题外话 以前也用C写过字符串,主要应用的领域是,大字符串,文件读取方面.写的很粗暴,用的凑合着.那时候看见云风前辈的一个开源的 cstring 串. 当时简单观摩了一下,觉得挺好的.也没细看.过了较长 ... 
- Java XML解析器
		使用Apache Xerces解析XML文档 一.技术概述 在用Java解析XML时候,一般都使用现成XML解析器来完成,自己编码解析是一件很棘手的问题,对程序员要求很高,一般也没有专业厂商或者开源组 ... 
- java基础解析系列(七)---ThreadLocal原理分析
		java基础解析系列(七)---ThreadLocal原理分析 目录 java基础解析系列(一)---String.StringBuffer.StringBuilder java基础解析系列(二)-- ... 
- XML概念定义以及如何定义xml文件编写约束条件java解析xml   DTD XML Schema JAXP java xml解析 dom4j  解析 xpath dom sax
		本文主要涉及:xml概念描述,xml的约束文件,dtd,xsd文件的定义使用,如何在xml中引用xsd文件,如何使用java解析xml,解析xml方式dom sax,dom4j解析xml文件 XML来 ... 
- Java数据解析---JSON
		一.Java数据解析分为:XML解析和JSON解析 XML解析即是对XML文件中的数据解析,而JSON解析即对规定形式的数据解析,比XML解析更加方便 JSON解析基于两种结构: 1.键值对类型 { ... 
- Java内存解析   程序的执行过程
		Java内存解析 栈.堆.常量池等虽同属Java内存分配时操作的区域,但其适用范围和功用却大不相同.本文将深入Java核心,简单讲解Java内存分配方面的知识. 首先我们先来讲解一下内存中的各个区域. ... 
- objective-c和java下解析对象类型和数组类型JSON字符串
		首先讲objective-c如何实现: 这里需要用到2个插件,一个是JSONKit,另一个是Jastor,一共包含6个文件,3个.h头文件和3个.m实现文件.在ARC的工程中如何导入不支持ARC的第三 ... 
随机推荐
- B-Tree vs LSM-tree
			什么是B-树 一.已排序文件的查找时间 对一个有N笔记录的已排序表进行二叉查找,可以在O(log2N)比较级完成.如果表有1,000,000笔记录,那么定位其中一笔记录,将在20 ( log21,00 ... 
- Python获取主机名
			import socket print socket.gethostname() 
- 转:使用awk命令获取文本的某一行,某一列
			1.打印文件的第一列(域) : awk '{print $1}' filename2.打印文件的前两列(域) : awk '{print ... 
- ubuntu安装deb文件
			install the deb-package, e.g. using the Terminal command$ sudo apt install <path-to-smartgit-deb- ... 
- vue 基础核心学习
			<html> <body> <div id="app"> {{ message }} </div> <div id=" ... 
- SSH远程登陆docker容器
			环境: Ubuntu 16.04(mac osx的VMware Fushion环境) 任务: Ubuntu 16.04通过SSH登陆docker(目的是为了运行在其他服务器的Jenkins访问dock ... 
- 1.6 使用电脑测试MC20的读取带中文短信功能
			需要准备的硬件 MC20开发板 1个 https://item.taobao.com/item.htm?id=562661881042 GSM/GPRS天线 1根 https://item.taoba ... 
- tcp/ip 中的分组和分片
			osi 大家应该都知道osi七层模型吧,物理层 链路层 网络层 传输层 会话层 表示层 应用层ip 属于网络层,tcp 属于传输层,你可以把每一层想像成粽子的粽叶,包裹了七层的粽子最外面的就是物理层, ... 
- MySQL-版本及服务介绍
			一.MySQL各版本 1.MySQL产品 下载地址:https://www.mysql.com/downloads/ Oracle MySQL Cloud Service(commercial) 商业 ... 
- samtools+bcftools 进行SNP calling
			两个软件的作用:1.samtools mpileup 主要是用于收集BAM文件中的信息,这个位点上有多少条read匹配,匹配read的碱基是什么,并将这些信息存储在BCF文件中.2.bcftools ... 
