public static String getWsdl( AxisConfiguration axisConfig, IServiceConfig webservice ) throws Exception {
Class<?> serviceClass = webservice.getServiceClass();
String name = serviceClass.getSimpleName();
ByteArrayOutputStream out = new ByteArrayOutputStream();
Java2WSDLBuilder java2WsdlBuilder =
new Java2WSDLBuilder( out, serviceClass.getName(), serviceClass.getClassLoader() );
// convert the extra classes into a list of class names
Collection<Class<?>> extraClasses = webservice.getExtraClasses();
if ( extraClasses != null ) {
ArrayList<String> extraClassNames = new ArrayList<String>();
for ( Class<?> extraClass : extraClasses ) {
extraClassNames.add( extraClass.getName() );
}
java2WsdlBuilder.setExtraClasses( extraClassNames );
}
java2WsdlBuilder.setSchemaTargetNamespace( "http://webservice.pentaho.com" ); //$NON-NLS-1$
java2WsdlBuilder.setLocationUri( getWebServiceExecuteUrl() + name );
java2WsdlBuilder.setTargetNamespacePrefix( "pho" ); //$NON-NLS-1$
java2WsdlBuilder.setServiceName( name );
java2WsdlBuilder.setAttrFormDefault( "unqualified" ); //$NON-NLS-1$
java2WsdlBuilder.setElementFormDefault( "unqualified" ); //$NON-NLS-1$
java2WsdlBuilder.setGenerateDocLitBare( false );
java2WsdlBuilder.generateWSDL();
return new String( out.toByteArray() );
}