Hi Demetris, To read a local file you could simply use "file:///path/to/wsdl/file.wsdl" as readWSDL argument -> reader.readWSDL("file:///path/to/your/wsdl");, Or if you have a WSDL serialized in String, you could use reader.readWSDL( null, new InputSource(new StringReader(wsdlString)));
Regards, Sukma On Fri, Feb 22, 2008 at 1:22 PM, Demetris G <[EMAIL PROTECTED]> wrote: > > Hi all, > > does anyone know of a piece of code similar to the one below that > can read/parse a local WSDL file > serialized in a string rather than a remote WSDL given by a URI? > > Thanks > > Sukma Agung Verdianto wrote: > > Hi Demetris, > > > > You can try to use wsdl4j (http://sourceforge.net/projects/wsdl4j) to > > get the operations of specified wsdl file. (AFAIK, Axis2 uses this in > > their wsdl2java code) > > > > public static void main(String[] args) throws Exception { > > > > WSDLFactory fac = WSDLFactoryImpl.newInstance(); > > > > WSDLReader reader = fac.newWSDLReader(); > > > > Definition def = > > reader.readWSDL("http://api.google.com/GoogleSearch.wsdl"); > > > > Map services = def.getServices(); > > > > for(Object serviceKey : services.keySet()) { > > > > QName serviceQName = (QName) serviceKey; > > > > Service service = (Service) services.get(serviceQName); > > > > System.out.println("Namespace: " + > > service.getQName().getNamespaceURI() + ", Service Name: " + > > service.getQName().getLocalPart()); > > > > Map ports = service.getPorts(); > > > > for(Object portKey : ports.keySet()) { > > > > String portName = (String) portKey; > > > > Port port = (Port) ports.get(portName); > > > > System.out.println(" Namespace: " + > > port.getBinding().getQName().getNamespaceURI() + ", Binding Name: " + > > port.getBinding().getQName().getLocalPart()); > > > > List operations = port.getBinding().getBindingOperations(); > > > > for(Object operation : operations) { > > > > BindingOperation op = (BindingOperation) operation; > > > > System.out.print(" Operation Name: " + op.getName()); > > > > List ll = op.getExtensibilityElements(); > > > > for(Object soap : ll) { > > > > if(SOAPOperation.class.isInstance(soap)) { > > > > System.out.print(" (" + ((SOAPOperation)soap).getSoapActionURI() + ")"); > > > > } > > > > } > > > > System.out.println(); > > > > } > > > > } > > > > } > > > > } > > > > > > Above code read remote wsdl, and extract its information. > > > > Regards, > > Sukma > > > > On Feb 17, 2008 2:09 PM, Demetris G <[EMAIL PROTECTED] > > <mailto:[EMAIL PROTECTED]>> wrote: > > > > > > Hi all, > > > > I am trying to use the wsdlParser from the Axis API to parse > > the methods > > out of an incoming WSDL file - does anyone who has used this > > before have > > any info on how to use this tool? OR any other way I could get the > > operations > > of the remote service out of the WSDL file? I would appreciate it. > > > > Thanks > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > <mailto:[EMAIL PROTECTED]> > > For additional commands, e-mail: [EMAIL PROTECTED] > > <mailto:[EMAIL PROTECTED]> > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > >