wsdl4j 解析 wsdl
2016-03-30 11:20
387 查看
需要下载 wsdl4j.jar 包,大家可以到我的资源中下载,附链接wsdl4j下载
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);
//http://localhost:8080/ode/processes/HelloBPELService
//http://localhost:8080/axis/services/SayHelloService
Definition def=reader.readWSDL("http://localhost:8080/ode/processes/HelloBPELService?wsdl");
//解析服务名
System.out.println("---------------------------------------------");
System.out.println("nService Name:");
String tns="http://sample.bpel.org/bpel/sample";
Service service =def.getService(new QName(tns,"HelloBPELService"));
System.out.println(service.getQName().getLocalPart());
System.out.println();
//解析接口方法名
System.out.println("nOperation Name:");
Port port =service.getPort("HelloBPELProcessPort");
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();
//解析消息,输入输出
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.print("parameter name:"+part.getName());
// System.out.println("parameter type:"+part.getTypeName().getLocalPart());
System.out.print(" ......parameter element:"+part.getElementName().getLocalPart());
System.out.println(" ......parameter type:"+part.getTypeName());
}
}
}
System.out.println();
//解析服务地址
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();}
}
}
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);
//http://localhost:8080/ode/processes/HelloBPELService
//http://localhost:8080/axis/services/SayHelloService
Definition def=reader.readWSDL("http://localhost:8080/ode/processes/HelloBPELService?wsdl");
//解析服务名
System.out.println("---------------------------------------------");
System.out.println("nService Name:");
String tns="http://sample.bpel.org/bpel/sample";
Service service =def.getService(new QName(tns,"HelloBPELService"));
System.out.println(service.getQName().getLocalPart());
System.out.println();
//解析接口方法名
System.out.println("nOperation Name:");
Port port =service.getPort("HelloBPELProcessPort");
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();
//解析消息,输入输出
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.print("parameter name:"+part.getName());
// System.out.println("parameter type:"+part.getTypeName().getLocalPart());
System.out.print(" ......parameter element:"+part.getElementName().getLocalPart());
System.out.println(" ......parameter type:"+part.getTypeName());
}
}
}
System.out.println();
//解析服务地址
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();}
}
}
相关文章推荐
- jQuery 效果 - 淡入淡出
- linux tomcat 绑定域名
- 26字母转换成数字,26进制,a为1,aa为27,ab为28
- 入门(一)
- 前端工程师必备的PS技能——切图篇
- xib系列---基本 UI 控件详解 (UISegmentedControl | UIImageView | UIProgressView | UISlider | UIAlertView )
- Xcode 7 更新
- Xcode 7 更新
- HiveServer2 Clients
- Git 搭建私有仓库
- 【dfs+染色】【HDOJ】5652 India and China Origins
- Android属性动画完全解析(中),ValueAnimator和ObjectAnimator的高级用法
- Linux系统下创建任务,对指定目录文件进行自动压缩存档
- [2014-03-26 10:50:01 - ddms] Can't bind to local 8700 for debugger
- Process 'command 'C:\Program Files\Java\jdk1.8.0_51\bin\java.exe'' finished with non-zero exit value
- 基于注解的SpringAOP Redis缓存技术
- sphinx+reStructuredText
- Spring-servlet流程 个人总结
- 双亲委派机制
- 修复jQuery tablesorter无法正确排序的bug(加千分位数字后)