private File getPublishLocation ( String serviceName , String archiveName , String wsdlLocation ) throws IOException { if ( wsdlLocation == null && serviceName == null ) { Loggers . DEPLOYMENT_LOGGER . cannotGetWsdlPublishLocation ( ) ; return null ; } //JBWS-2829: windows issue if ( archiveName . startsWith ( "http://" ) ) { archiveName = archiveName . replace ( "http://" , "http-" ) ; } File locationFile = new File ( serverConfig . getServerDataDir ( ) . getCanonicalPath ( ) + "/wsdl/" + archiveName ) ; if ( wsdlLocation != null && wsdlLocation . indexOf ( expLocation ) >= 0 ) { wsdlLocation = wsdlLocation . substring ( wsdlLocation . indexOf ( expLocation ) + expLocation . length ( ) ) ; return new File ( locationFile + "/" + wsdlLocation ) ; } else if ( wsdlLocation != null && ! wsdlLocation . startsWith ( "vfs:" ) ) { for ( String wsdlLocationPrefix : wsdlLocationPrefixes ) { if ( wsdlLocation . startsWith ( wsdlLocationPrefix ) ) { return new File ( locationFile , encodeLocation ( wsdlLocation . substring ( wsdlLocationPrefix . length ( ) , wsdlLocation . lastIndexOf ( "/" ) + 1 ) ) ) ; } } return new File ( locationFile , encodeLocation ( wsdlLocation ) ) ; } else { return new File ( locationFile + "/" + serviceName + ".wsdl" ) ; } }
Get the file publish location