Author: richard.opalka(a)jboss.com
Date: 2008-09-18 11:37:48 -0400 (Thu, 18 Sep 2008)
New Revision: 8185
Modified:
stack/native/trunk/.classpath
stack/native/trunk/modules/core/src/main/java/org/jboss/ws/tools/wsdl/WSDL11Reader.java
Log:
[JBWS-2267] use EntityResolver first
Modified: stack/native/trunk/.classpath
===================================================================
--- stack/native/trunk/.classpath 2008-09-18 11:41:10 UTC (rev 8184)
+++ stack/native/trunk/.classpath 2008-09-18 15:37:48 UTC (rev 8185)
@@ -13,6 +13,6 @@
<classpathentry combineaccessrules="false" kind="src"
path="/jbossws-common"/>
<classpathentry combineaccessrules="false" kind="src"
path="/jbossws-framework"/>
<classpathentry combineaccessrules="false" kind="src"
path="/jbossws-spi"/>
- <classpathentry kind="con"
path="org.eclipse.jdt.USER_LIBRARY/jboss-5.0.0.CR2"/>
+ <classpathentry kind="con"
path="org.eclipse.jdt.USER_LIBRARY/jboss-5.0.0.GA"/>
<classpathentry kind="output" path="target/eclipse-classes"/>
</classpath>
Modified:
stack/native/trunk/modules/core/src/main/java/org/jboss/ws/tools/wsdl/WSDL11Reader.java
===================================================================
---
stack/native/trunk/modules/core/src/main/java/org/jboss/ws/tools/wsdl/WSDL11Reader.java 2008-09-18
11:41:10 UTC (rev 8184)
+++
stack/native/trunk/modules/core/src/main/java/org/jboss/ws/tools/wsdl/WSDL11Reader.java 2008-09-18
15:37:48 UTC (rev 8185)
@@ -76,6 +76,7 @@
import org.jboss.logging.Logger;
import org.jboss.ws.Constants;
import org.jboss.ws.core.soap.Style;
+import org.jboss.ws.core.utils.JBossWSEntityResolver;
import org.jboss.ws.core.utils.ResourceURL;
import org.jboss.ws.metadata.wsdl.Extendable;
import org.jboss.ws.metadata.wsdl.WSDLBinding;
@@ -113,6 +114,7 @@
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
+import org.xml.sax.SAXException;
/**
* A helper that translates a WSDL-1.1 object graph into a WSDL-2.0 object graph.
@@ -128,6 +130,7 @@
private static final Logger log = Logger.getLogger(WSDL11Reader.class);
private WSDLDefinitions destWsdl;
+ private JBossWSEntityResolver entityResolver = new JBossWSEntityResolver();
// Maps wsdl message parts to their corresponding element names
private Map<String, QName> messagePartToElementMap = new HashMap<String,
QName>();
@@ -583,7 +586,23 @@
schemaLocationsMap.put(namespace, currLoc);
// Recursively handle schema imports
- Element importedSchema = DOMUtils.parse(currLoc.openStream());
+ Element importedSchema = null;
+ String schema = currLoc.toString();
+ if (entityResolver.getEntityMap().containsKey(schema))
+ {
+ try
+ {
+ importedSchema = DOMUtils.parse(entityResolver.resolveEntity(schema,
schema).getByteStream());
+ }
+ catch (SAXException se)
+ {
+ log.error(se.getMessage(), se);
+ }
+ }
+ if (importedSchema == null)
+ {
+ importedSchema = DOMUtils.parse(currLoc.openStream());
+ }
handleSchemaImports(importedSchema, currLoc);
}
}
Show replies by date