stevel 2002/11/19 15:28:08 Modified: java/src/org/apache/axis/i18n resource.properties java/src/org/apache/axis/handlers/soap SOAPService.java Log: now <wsdlFile> looks for a resource if the file doesnt resolve in a directory; adds a meaningful error message if neither is found, and closes the file afterwards. I dont think any examples use this element, so we need some new tests. Revision Changes Path 1.29 +3 -1 xml-axis/java/src/org/apache/axis/i18n/resource.properties Index: resource.properties =================================================================== RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/i18n/resource.properties,v retrieving revision 1.28 retrieving revision 1.29 diff -u -r1.28 -r1.29 --- resource.properties 19 Nov 2002 19:28:28 -0000 1.28 +++ resource.properties 19 Nov 2002 23:28:08 -0000 1.29 @@ -1032,7 +1032,7 @@ undefinedElem00=Element {0} is referenced but not defined. emptyref00=Error: missing type or ref attribute for node ''{0}'' -cannotConnectError=Unable to connect +cannotConnectError=Unable to connectXm unabletoLoadMessages00=Unable to load messages! unabletoDeployTypemapping00=Unable to deploy typemapping: {0} @@ -1069,3 +1069,5 @@ noContainerForAnonymousType=makeTypeElement() was told to create a type "{0}", with no containing element cantLoadByecode=Unable to load bytecode for class "{0}" + +wsdlFileMissing=Unable to find WSDL file or resource {0} 1.88 +25 -2 xml-axis/java/src/org/apache/axis/handlers/soap/SOAPService.java Index: SOAPService.java =================================================================== RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/handlers/soap/SOAPService.java,v retrieving revision 1.87 retrieving revision 1.88 diff -u -r1.87 -r1.88 --- SOAPService.java 4 Nov 2002 16:32:35 -0000 1.87 +++ SOAPService.java 19 Nov 2002 23:28:08 -0000 1.88 @@ -80,6 +80,10 @@ import javax.xml.namespace.QName; import java.io.FileInputStream; +import java.io.InputStream; +import java.io.FileNotFoundException; +import java.io.File; +import java.io.IOException; import java.util.ArrayList; import java.util.Enumeration; import java.util.Hashtable; @@ -364,14 +368,33 @@ super.generateWSDL(msgContext); return; } + InputStream instream = null; // Got a WSDL file in the service description, so try and read it try { - Document doc = XMLUtils.newDocument( - new FileInputStream(serviceDescription.getWSDLFile())); + String filename= serviceDescription.getWSDLFile(); + File file=new File(filename); + if(file.exists()) { + //if this resolves to a file, load it + instream = new FileInputStream(filename); + } else { + //else load a named resource in our classloader. + instream = this.getClass().getResourceAsStream(filename); + if (instream == null) { + String errorText=Messages.getMessage("wsdlFileMissing",filename); + throw new AxisFault(errorText); + } + } + Document doc = XMLUtils.newDocument(instream); msgContext.setProperty("WSDL", doc); } catch (Exception e) { throw AxisFault.makeFault(e); + } finally { + if(instream!=null) { + try { + instream.close(); + } catch (IOException e) { } + } } } /*********************************************************************