You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

78 lines
2.6 KiB
Java

WsdlViewerUtil
package com.ack.webservices.wsdl;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.wsdl.Binding;
import javax.wsdl.Definition;
import javax.wsdl.Operation;
import javax.wsdl.Port;
import javax.wsdl.PortType;
import javax.wsdl.Service;
import javax.xml.namespace.QName;
public class WsdlViewerUtil {
public static String viewServices( Definition wsdlDefinition ) {
Map services = wsdlDefinition.getServices();
Set serviceKeys = services.keySet();
StringBuffer buf = new StringBuffer();
for( Iterator it = serviceKeys.iterator(); it.hasNext(); ) {
QName serviceKey = (QName) it.next();
String serviceView = WsdlViewerUtil.viewService( (Service) services.get( serviceKey ) );
buf.append( serviceView );
buf.append( "\n" );
}
return buf.toString();
}
public static String viewService( Service wsdlService ) {
StringBuffer buffer = new StringBuffer( "Service: " );
buffer.append( wsdlService.getQName().getLocalPart() );
buffer.append( "\n Service Namespace: " );
buffer.append( wsdlService.getQName().getNamespaceURI() );
buffer.append( "\n" );
Map ports = wsdlService.getPorts();
Set portKeys = ports.keySet();
for( Iterator it = portKeys.iterator(); it.hasNext(); ) {
String portKey = (String) it.next();
String portView = WsdlViewerUtil.viewPort( (Port) ports.get( portKey ) );
buffer.append( portView );
buffer.append( "\n" );
}
return buffer.toString();
}
public static String viewPort( Port wsdlPort ) {
StringBuffer buffer = new StringBuffer( "Port: " );
buffer.append( wsdlPort.getName() );
Binding wsdlBinding = wsdlPort.getBinding();
buffer.append( "\nBinding: " );
buffer.append( wsdlBinding.getQName() );
PortType portType = wsdlBinding.getPortType();
buffer.append( "\nPortType: " + portType.getQName() );
List operations = portType.getOperations();
buffer.append( "\nOperations: " + operations.size() + " operations " );
for( Iterator it = operations.iterator(); it.hasNext(); ) {
Operation operation = (Operation) it.next();
buffer.append( "\n Operation: " + operation.getName() );
buffer.append( " {style=" + operation.getStyle() + "}" );
buffer.append( " {input=" + operation.getInput().getMessage().getQName().getLocalPart() + "}" );
buffer.append( " {output=" + operation.getOutput().getMessage().getQName().getLocalPart() + "}" );
}
return buffer.toString();
}
}