Still had issues with deploying complex hl7 webservice.  Here is a patch to 
WSDL11Reader (version 3.1.1) that solved my HL7V3 issues:


  | --- WSDL11Reader.java       2009-09-25 13:06:36.847867600 -0400
  | +++ WSDL11Reader.java.new   2009-10-01 18:46:58.741045900 -0400
  | @@ -145,6 +145,8 @@
  |  
  |     // Temporary files used by this reader.
  |     private List<File> tempFiles = new ArrayList<File>();
  | +   private Map<String, String> publocation = new HashMap<String, String>();
  | +   private List<String> published = new ArrayList<String>();
  |  
  |     // SWA handling
  |     private Map<QName, List<String>> skippedSWAParts = new HashMap<QName, 
List<String>>();
  | @@ -423,7 +425,6 @@
  |              String localname = domElementClone.getLocalName();
  |              try
  |              {
  | -               List<URL> published = new LinkedList<URL>();
  |                 if ("import".equals(localname))
  |                 {
  |                    processSchemaImport(destTypes, wsdlLoc, domElementClone, 
published);
  | @@ -436,8 +437,8 @@
  |                 {
  |                    throw new IllegalArgumentException("Unsuported schema 
element: " + localname);
  |                 }
  | -               published.clear();
  | -               published = null;
  | +//               published.clear();
  | +//               published = null;
  |              }
  |              catch (IOException e)
  |              {
  | @@ -529,7 +530,7 @@
  |        }
  |     }
  |  
  | -   private void processSchemaImport(WSDLTypes types, URL wsdlLoc, Element 
importEl, List<URL> published) throws IOException, WSDLException
  | +   private void processSchemaImport(WSDLTypes types, URL wsdlLoc, Element 
importEl, List<String> published) throws IOException, WSDLException
  |     {
  |        if (wsdlLoc == null)
  |           throw new IllegalArgumentException("Cannot process import, parent 
location not set");
  | @@ -542,16 +543,25 @@
  |  
  |        URL locationURL = getLocationURL(wsdlLoc, location);
  |        Element rootElement = DOMUtils.parse(new 
ResourceURL(locationURL).openStream());
  | -      if (!published.contains(locationURL))
  | +      if (!published.contains(locationURL.toExternalForm()))
  |        {
  | -         published.add(locationURL);
  | +         published.add(locationURL.toExternalForm());
  |           URL newloc = processSchemaInclude(types, locationURL, 
rootElement,  published);
  | -         if (newloc != null)
  | +         if (newloc != null) {
  |              importEl.setAttribute("schemaLocation", 
newloc.toExternalForm());
  | +            publocation.put(locationURL.toExternalForm(), 
newloc.toExternalForm());
  | +         }
  | +      }
  | +      else {
  | +          if (publocation.containsKey(locationURL.toExternalForm())) {
  | +              if (publocation.get(locationURL.toExternalForm()) != null) {
  | +                 importEl.setAttribute("schemaLocation", 
(String)publocation.get(locationURL));          
  | +              }
  | +          }
  |        }
  |     }
  |  
  | -   private URL processSchemaInclude(WSDLTypes types, URL wsdlLoc, Element 
schemaEl, List<URL> published) throws IOException, WSDLException
  | +   private URL processSchemaInclude(WSDLTypes types, URL wsdlLoc, Element 
schemaEl, List<String> published) throws IOException, WSDLException
  |     {
  |        if (wsdlLoc == null)
  |           throw new IllegalArgumentException("Cannot process iclude, parent 
location not set");
  | @@ -580,12 +590,21 @@
  |  
  |           URL locationURL = getLocationURL(wsdlLoc, location);
  |           Element rootElement = DOMUtils.parse(new 
ResourceURL(locationURL).openStream());
  | -         if (!published.contains(locationURL))
  | +         if (!published.contains(locationURL.toExternalForm()))
  |           {
  | -            published.add(locationURL);
  | +            published.add(locationURL.toExternalForm());
  |              URL newloc = processSchemaInclude(types, locationURL, 
rootElement, published);
  | -            if (newloc != null)
  | +            if (newloc != null) {
  |                 includeEl.setAttribute("schemaLocation", 
newloc.toExternalForm());
  | +                
publocation.put(locationURL.toExternalForm(),newloc.toExternalForm());
  | +            }
  | +         }
  | +         else {
  | +             if (publocation.containsKey(locationURL.toExternalForm())) {
  | +                 if (publocation.get(locationURL.toExternalForm()) != 
null) {
  | +                    includeEl.setAttribute("schemaLocation", 
(String)publocation.get(locationURL));
  | +                 }
  | +             }
  |           }
  |        }
  |  
  | 

View the original post : 
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4258296#4258296

Reply to the post : 
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4258296
_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to