论坛首页 Java企业应用论坛

解析WSDL的几个体会

浏览 9628 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-11-17   最后修改:2010-11-17
SOA
1、解析wsdl的时候,根据服务获取port,根据port获取binding类型
发现wsdl4j的解析结果和eclipse的wtp中的实现略有区别。
public static boolean isSupport(Port port) {
		Boolean flag = false;
		Binding binding = port.getBinding();

		List list = binding.getExtensibilityElements();

		for (Iterator iter = list.iterator(); iter.hasNext();) {
			ExtensibilityElement element = (ExtensibilityElement) iter.next();
			String namespaceURI = null;
			// for wst wsdl-parser
			if (element instanceof ExtensibilityElementImpl) {
				namespaceURI = ((ExtensibilityElementImpl) element).getElement().getNamespaceURI();
			} else // for wsdl4j wsdl-parser
			{
			// wst的话,这里如果使用getElementType获得的是一个UnknownExtensibilityElementImpl,
			// 如果是soap12 的绑定,namespaceURI是 http://www.ibm.com/wsdl/2003/WSDL
			// http和soap11的绑定是正确的,怪异
				namespaceURI = element.getElementType().getNamespaceURI();
			}
			// System.out.println("====>" + namespaceURI);
			return WSDL_SOAP11_NAMESPACEURI.equalsIgnoreCase(namespaceURI) || WSDL_SOAP12_NAMESPACEURI.equalsIgnoreCase(namespaceURI);
		}

		return flag;
	}


2、一般来说,常见的解析方式有:
  直接dom/sax,然后分析节点的,例如wsdl4j
  使用xmlbeans,然后对象方式使用XMLObject的  例如 soapUI
  使用xstream的  
  使用axiom的,apache的 ws处理的几个项目,saaj实现,这个很方便且高效

   发表时间:2010-11-18  
目前来说没有很好的解析方式。
wsdl4j +jdom是一种方式 不过有很多不规范的解决不了

axis cfx xfire都有自己的引擎,解析的还的不错。

soapui解析的很不错,不过没有看到过源码。

0 请登录后投票
   发表时间:2010-11-19  
我觉得soap ui蛮好用的。
0 请登录后投票
   发表时间:2010-11-19  
java998 写道
我觉得soap ui蛮好用的。

同感同感~~~
0 请登录后投票
   发表时间:2010-11-20  
用着xfire挺好的啊
0 请登录后投票
   发表时间:2010-11-21  
soapui用来测试ws真是太顺手了
0 请登录后投票
   发表时间:2010-11-21  
推荐cxf;
目前个人使用tibco+Altova XMLSpy
0 请登录后投票
   发表时间:2010-11-28  
cxf, xfire , axis1 2等几个项目,都是axiom
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics