目標:我想讀取 WSDL 并打印 WSDL、復雜類型和復雜類型定義中的服務。工作過:我使用 WSDL4J 來讀取 WSDL 并成功打印服務及其參數(復雜類型)?,F在我想閱讀 XSD 中可用的復雜類型定義。我無法讀取 XSD 。有什么辦法嗎?我得到 XSModel 為空import java.util.ArrayList;import java.util.Collection;import java.util.List;import java.util.Map;import javax.wsdl.BindingOperation;import javax.wsdl.Definition;import javax.wsdl.WSDLException;import javax.wsdl.xml.WSDLReader;import org.w3c.dom.bootstrap.DOMImplementationRegistry;import com.ibm.wsdl.BindingImpl;import com.ibm.wsdl.xml.WSDLReaderImpl;import com.sun.org.apache.xerces.internal.impl.xs.XSImplementationImpl;import com.sun.org.apache.xerces.internal.xs.XSLoader;import com.sun.org.apache.xerces.internal.xs.XSModel;public class WSDLDetails { public static void main(String[] args) { try { String wsdlURL = "https://abc.xyz.com/webservice/MessagingSevice?WSDL"; String xsdURL = "https://abc.xyz.com/webservice/MessagingSevice?xsd=1"; java.lang.System.setProperty("https.protocols", "TLSv1.2"); getAllBindingOperation(wsdlURL); readXSD(xsdURL); } catch (Exception e) { e.printStackTrace(); } } public static List<String> getAllBindingOperation(String wsdlUrl) { List<BindingOperation> operationList = new ArrayList(); List<String> nameList = new ArrayList(); try { WSDLReader reader = new WSDLReaderImpl(); reader.setFeature("javax.wsdl.verbose", false); Definition definition = reader.readWSDL(wsdlUrl.toString()); Map<String, BindingImpl> defMap = definition.getAllBindings(); Collection<BindingImpl> collection = defMap.values(); for (BindingImpl binding : collection) { operationList.addAll(binding.getBindingOperations()); }
添加回答
舉報
0/150
提交
取消