1. 程式人生 > >wsdl4j解析webservice的wsdl-根據webservice地址查詢介面方法名稱

wsdl4j解析webservice的wsdl-根據webservice地址查詢介面方法名稱

最近研究了關於webservice的解析wsdl的問題,希望對各位有些幫助;

import java.util.Iterator;

import java.util.List;
import java.util.Map;
import javax.wsdl.Binding;
import javax.wsdl.Definition;
import javax.wsdl.Input;
import javax.wsdl.Message;
import javax.wsdl.Operation;
import javax.wsdl.Part;
import javax.wsdl.Port;
import javax.wsdl.PortType;
import javax.wsdl.Service;
import javax.wsdl.WSDLException;
import javax.wsdl.factory.WSDLFactory;
import javax.wsdl.xml.WSDLReader;
import javax.xml.namespace.QName;
public class TestDemo4 {
public static void main(String[]args)  
{  
String webServiceUrl = "http://localhost/Service1.asmx";
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(webServiceUrl+"?wsdl");  
 
  String namespaceURI=def.getTargetNamespace(); 
  String localPart = webServiceUrl.split("/")[webServiceUrl.split("/").length-1];
  if(localPart.contains(".")){
  localPart = localPart.split("\\.")[0];
  }
  Service service =def.getService(new QName(namespaceURI,localPart));  
  String portStr = "";
  Map<?, ?> ports = service.getPorts();
  Iterator<?> itor = ports.entrySet().iterator();
  while(itor.hasNext()){
  Map.Entry<?, ?> map = (Map.Entry<?, ?>)itor.next();
  Object key = map.getKey();
  portStr = (key == null ?"":key.toString());
  break;
  }
  Port port =service.getPort(portStr);  
  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()) ;
   
   }  
  }  

}catch(WSDLException e)
{
e.printStackTrace();
}   
}   
}

相關推薦

wsdl4j解析webservice的wsdl-根據webservice地址查詢介面方法名稱

最近研究了關於webservice的解析wsdl的問題,希望對各位有些幫助; import java.util.Iterator; import java.util.List; import java.util.Map; import javax.wsdl.Binding

根據WebService地址展示方法列表、入參和返回值(解析wsdl)

主要使用XPATH來解析wsdl文件,dom4j解析xsd 建議先了解一下WSDL的一些元素所代表的含義 效果(返回值暫時沒做,邏輯是一樣的): 獲取Document方法: /** * 得到wsdl檔案的根結點的document * *

穩定的IP地址查詢介面

近期發現各IP查詢介面不穩定: 新浪的IP地址查詢介面:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=xxx.xxx.xxx.xxx 淘寶的IP地址查詢介面:http://ip.taobao.com

js和jQuery調用搜狐IP地址查詢介面

介面返回的資料是: var returnCitySN = {"cip": "119.137.53.105", "cid": "440306", "cname": "廣東省深圳市寶安區"}; js呼叫: <script src="http://p

高德地圖根據輸入地址查詢軌跡路線以及獲取到所有的路線上的經緯度點

來看看效果吧: 具體程式碼如下: <!doctype html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" con

黃聰:分享幾個免費IP地址查詢介面(API)

淘寶IP地址庫 提供的服務包括:1. 根據使用者提供的IP地址,快速查詢出該IP地址所在的地理資訊和地理相關的資訊,包括國家、省、市和運營商。2. 使用者可以根據自己所在的位置和使用的IP地址更新我們的服務內容。 優勢: 1. 提供國家、省、市、縣、運營商全方位資訊,資訊維度廣,格式規範。2. 提供完善

IP地址查詢介面及使用方法

    //var remote_ip_info = {"ret":1,"start":"117.89.35.0","end":"117.89.35.255","country":"\u4e2d\u56fd","province":"\u6c5f\u82cf","city":"\u5357\u4eac","d

根據ip地址查詢地址資訊

用的是http://ip.taobao.com/service/getIpInfo.php介面。 這個也是網上找的,但是我已經修改測試過了,是可用的,在這裡先感謝原作者。 package com.rookie.mapper; import java.io.Bu

下劃線命名轉換為駝峰命名(根據介面查詢介面檔名)

見到一段程式碼實現的功能是:通過介面名驗證介面檔案是否存在。 舉個例子:介面名為:aa_bb_cc 介面檔名為 AbcAaBbCc.php 取這段程式碼稍作改造: <?php class FindFilename { /** $prefix 檔案字首 $Interfa

Java快遞物流查詢介面,怎麼接入物流介面API,如何根據單號查詢物流跟蹤的詳細資訊的Demo詳細說明

Java怎麼寫物流介面,怎麼接入物流介面,如何根據單號查詢物流跟蹤的詳細資訊 實現需求: 根據使用者輸入的訂單號,我們的後臺識別訂單號並根據快遞鳥查詢快遞Api介面,實現自動查詢的功能 應用場景 實現的具體步驟  1.本介面採用 快遞鳥物流介

根據經緯度根據谷歌地圖介面獲取到當前地址

/*http://maps.google.com/maps/api/geocode/json?latlng=40.714224,-73.961452&sensor=true */ 上面的訪問地址國內可能無法訪問,國內可以訪問以下地址 String url = "http:

webService 根據wsdl地址生成java客戶端程式碼

1、配置java環境變數 JAVA_HOME,classpath,path都要設定 2、cmd 開啟命令視窗  執行  wsimport -s E: -p com.zrt.portal.replay ht

IP地址、手機歸屬和身份證查詢介面

從網上看到的,轉載過來 IP地址、手機歸屬和身份證查詢介面 1. 查詢手機:http://www.yodao.com/smartresult-xml/search.s?type=mobile&q=手機號碼 2. 查詢IP:http://www.yodao.com/smartresult-

快遞物流查詢介面API,使用Jquery的ajax跨域實現根據單號查詢物流跟蹤的詳細資訊

應用場景:物流跟蹤資訊查詢 1. 本介面採用的是聚合資料介面:https://www.juhe.cn/docs/api/id/43 2. 首先,註冊賬號申請快遞單號介面:獲取申請的key 3. 介面所需引數檢視(主要是這三個需要傳到服務端)https://w

jquery這個webservice根據選擇城市查詢天氣

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC

免費IP地址查詢API介面

快遞查詢 http://www.kuaidi100.com/query?type=quanfengkuaidi&postid=390011492112 (PS:快遞公司編碼:申通"shentong" EMS"ems" 順豐"shunfeng" 圓

WSDL4J解析types標簽中的內容

write cef 問題 reader tag item init html nts WSDL4J是一種用來解析WSDL文本的常用工具。 但網絡上用WSDL4J來解析wsdl文檔complexType標簽中內容的問題一大堆也沒有有效的解決方法。今天在我“遍歷”wsdl4

oracle根據成績排名查詢某個名次段的人員

desc 區別 成績 des 別名 表結構 rank over ora 先說一下表結構 名字name 分數fenshu 表名test1,以下查詢的是成績排名為第三名和第四名,這個模板讓你查隨意排名段的人 select name,fenshu,mc from (sel

sql根據一個表查詢的數據作為條件查詢另一個表

mar 註意 pan color pen market 訂單號 order art 代碼格式如下: select * from BillConsume where obId in (select obId from OpenBills where clearThe

Oracle根據表名查詢過程名

mage blog 輸入 根據 style oracl name Owner tinc 一、根據sql查詢 SELECT NAME, TYPE, REFERENCED_OWNER, REFERENCED_NAME, REFERENCED_TYPE FROM USER_