WSDL4J解析WSDL文件方法
利用wsdl4j解析WSDL文件
工具:wsdl4j1.6
解析wsdl文件是axis1.4的服务wsdl文件
wsdl文件:
</wsdl:definitions>
下面是两个程序wsdl4j编写:
程序1:
- package com.wxm;
- import javax.wsdl.*;
- import javax.wsdl.factory.*;
- import javax.wsdl.xml.*;
- public class ReadWsdl {
- public static void main(String[]args)
- {
- try{
- WSDLFactory factory=WSDLFactory.newInstance();
- WSDLReader reader=factory.newWSDLReader();
- reader.setFeature("javax.wsdl.verbose",true);
- reader.setFeature("javax.wsdl.importDocuments",true);
- Definition def=reader.readWSDL("http://localhost:8080/axis/services/SayHelloService?wsdl");
- WSDLWriter writer=factory.newWSDLWriter();
- writer.writeWSDL(def, System.out);
- }catch(WSDLException e){e.printStackTrace();}
- }
- }
程序2:
- package com.wxm;
- import javax.wsdl.*;
- import javax.wsdl.extensions.*;
- import javax.wsdl.factory.*;
- import javax.wsdl.xml.*;
- import javax.xml.namespace.QName;
- import java.util.*;
- import org.w3c.dom.*;
- public class NavigatingWSDL {
- public static void main(String[]args)
- {
- try{
- WSDLFactory factory=WSDLFactory.newInstance();
- WSDLReader reader=factory.newWSDLReader();
- reader.setFeature("javax.wsdl.verbose",true);
- reader.setFeature("javax.wsdl.importDocuments",true);
- Definition def=reader.readWSDL("http://localhost:8080/axis/services/SayHelloService?wsdl");
- //解析服务名
- System.out.println("----------");
- System.out.println("nService Name:");
- String tns="http://localhost:8080/axis/services/SayHelloService";
- Service service =def.getService(new QName(tns,"SayHelloService"));
- System.out.println(service.getQName().getLocalPart());
- //解析接口方法名
- System.out.println("nOperation Name:");
- Port port =service.getPort("SayHelloService");
- Binding binding=port.getBinding();
- PortType portType=binding.getPortType();
- List operations=portType.getOperations();
- Iterator operIter=operations.iterator();
- while(operIter.hasNext())
- {
- Operation operation=(Operation)operIter.next();
- if(!operation.isUndefined())
- {System.out.println(operation.getName()) ;}
- }
- //解析消息,输入输出
- System.out.println("nMessages:");
- Map messages=def.getMessages();
- Iterator msgIter=messages.values().iterator();
- while(msgIter.hasNext())
- {
- Message msg=(Message)msgIter.next();
- if(!msg.isUndefined())
- {
- System.out.println(msg.getQName().getLocalPart());
- Iterator partIter=msg.getParts().values().iterator();
- while(partIter.hasNext())
- {
- Part part=(Part) partIter.next();
- System.out.print("parameter name:"+part.getName()+"t");
- System.out.println("parameter type:"+part.getTypeName().getLocalPart());
- }
- }
- }
- //解析服务地址
- System.out.println("nService location:");
- List l=port.getExtensibilityElements();
- ExtensibilityElement element=(ExtensibilityElement) l.get(0);
- String s=element.toString();
- System.out.println(s.substring(s.indexOf("location")));
- System.out.println("---------");
- }catch(WSDLException e){e.printStackTrace();}
- }
- }
可以解析出wsdl文件的服务名,操作接口名,服务地址等
转:http://blog.sina.com.cn/s/blog_5ee36ce70100nk97.html
WSDL4J解析WSDL文件方法的更多相关文章
- c++ 读取并解析excel文件方法
用Cocos开发模型特效工具编辑器,跨Mac和windows,当中有个需求是读取并解析excel文件,但网上的查找的例子几乎都只能是在windows下面使用,再或者是命令行脚本之类的.于是,自己写了一 ...
- 图解SOAPUI解析WSDL文件
本文链接:https://blog.csdn.net/qq_16234613/article/details/53143279 新建项目 添加WSDL文件 查看方法 查看XML格式 运行测试
- axis2--生成的wsdl文件方法的参数问题
我是一个使用axis2的新手,发现一个问题: * axis2生成的wsdl文件中关于提供服务的方法,其参数名称丢失,会变成args0 * , 原因: axis2 无法从java字节码中获取关于方法签名 ...
- android解析xml文件方法之一-----DOM
Hello.xml文件 <dict num="219" id="219" name="219"> <key>hell ...
- So easy Webservice 5.WSDL 文件说明
WSDL – WebService Description Language – Web服务描述语言 通过XML形式说明服务在什么地方-地址. 通过XML形式说明服务提供什么样的方法 – 如何调用. ...
- Java中使用DOM4J来生成xml文件和解析xml文件
一.前言 现在有不少需求,是需要我们解析xml文件中的数据,然后导入到数据库中,当然解析xml文件也有好多种方法,小编觉得还是DOM4J用的最多最广泛也最好理解的吧.小编也是最近需求里遇到了,就来整理 ...
- 学习 WebService 第二步:知识准备——WSDL文件解析
原文地址:https://www.cnblogs.com/yzw23333/p/7245104.html Web service中一个 WSDL 对应一个 web service地址. 可以想象成一个 ...
- ACEXML解析XML文件——我是如何学习并在短时间内掌握一个库的使用方法的
最近做的C++项目中需要使用xml文件保存一些信息,程序启动时会读取这些信息.最终经过主程的评测,决定使用ACEXML库来读取解析XML文件. 好吧,至于为什么选择ACEXML库,我就不说了.既然选择 ...
- 遍历文件 创建XML对象 方法 python解析XML文件 提取坐标计存入文件
XML文件??? xml即可扩展标记语言,它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言. 里面的标签都是可以随心所欲的按照他的命名规则来定义的,文件名为roi.xm ...
随机推荐
- 【mysql】linux, mac mysql数据库root 密码忘记修改
首先关闭正在运行的mysqld进程 执行mysqld_safe --skips-grant-tables & 双击enter 键进入命令行模式 执行 mysql linux 系统执行:upda ...
- MySQL之单表查询、多表查询
一.单表查询: 单个表的查询方法及语法顺序需要通过实际例子来熟悉 先将表数据创建下: mysql> create database singe_t1; # 建个数据库singe_t1 Query ...
- 数据结构之--图(Graphics)
1.1:图的定义和术语 图是一种比线性表和树更为复杂的数据结构.在线性表中,数据元素之间仅有线性关系,每个元素仅有一个直接前驱和一个直接后继:在树形结构中,数据元素之间有着明显的层次关系,并且每一 ...
- LeetCode 673. Number of Longest Increasing Subsequence
Given an unsorted array of integers, find the number of longest increasing subsequence. Example 1: I ...
- cf886d Restoration of string
明确几点 假设有串 ab,那么 a 后头必须是 b,b 前头必须是 a,否则就不是最频繁的了. 不可成环,aba是非法的. #include <iostream> #include < ...
- float.h
float.h 一背景知识 浮点算术非常复杂 很多小的处理器在硬件指令方面甚至不支持浮点算术 其他的则需要一个独立的协处理器来处理这种运算 只有最复杂的计算机才在硬件指令集中支持浮点运算 ...
- World Finals 2017
Need for Speed Sheila is a student and she drives a typical student car: it is old, slow, rusty, a ...
- 【软考2】Java语言的基本知识汇总
导读:现在对于java这一模块,还没有相应的项目经验,只是通过各种类型的资料,对java有一个面上的了解.现在,对此做一个罗列总结,在以后的学习过程中,逐步完善! 一.语言的发展 1.1,机器语言 在 ...
- USACO Longest Prefix
题目大意:给出一个长字符串,问最长的前缀,使得这个前缀能用给出的一些元素组合而成 思路:暴力dp,dp[i]表示长度为i的前缀能否被表示 /*{ ID:a4298442 PROB:prefix LAN ...
- 刷题总结——蜥蜴(ssoj网络流)
题目: 题目背景 SCOI2007 DAY1 T3 题目描述 在一个 r 行 c 列的网格地图中有一些高度不同的石柱,一些石柱上站着一些蜥蜴,你的任务是让尽量多的蜥蜴逃到边界外.每行每列中相邻石柱的距 ...