基于WSDL4J的Web服务解析
WSDL4J简介
WSDL是用来描述一个异构组件如何被程远程未知平台调用的(描述了SOAP消息的格式),在WEB服务中起到了服务端和服务客户端之间的契约作用。
而WSDL4J是用来解析WSDL文件的技术,很多WEB服务的底层实现都用了该技术。
但在传统的WEB服务实现方案中,该技术作为底层实现被屏蔽。而我们的项目为了能够动态的调用异构平台的未知服务,必须使用该技术。
解析流程
WSDL文档是用来描述异构组件如何被调用的,具体来说就是描述了SOAP消息是什么样的,为了能够动态调用未知服务,必须对此文档进行解析。
具体的解析过程如图5.2所示。
图5.1 WSDL文档解析过程
先从Service标签中取得一些必要信息,再解析其所有Port子元素,再解析Port对应的Binding再解析Binding所绑定的所有Operation元素,解析Operation所对应的输入Message和输出Message。
具体实现
CACTUS系统中与WSDL文档解析相关的JAVA类
用com.swc.se.domain.Service类描述WSDL文件中Service元素,即用来装载从Service元素和其子元素中解析出来的数据。同时,com.swc.se.domain.Service类也对应一个远程服务。
用com.swc.se.domain.Operation类描述WSDL文件中Operation元素,即用来装载Operation元素和其子元素中解析出来的数据。同时,com.swc.se.domain.Operation类对应一个远程服务的某个操作,也对应系统中发出去的一条SOAP消息。
用com.swc.se.domain.Parameter类描述WSDL文件中