So we figured the problem out.
Warning: this may come and bite others if they have large installations (e.g. lots of packages/big classpath etc).
The problem was down to xerces’s behaviour of looking to multiple locations before defaulting to certain behaviour.
Needed this added to the system properties (via the watt.config.systemProperties extended setting):
org.apache.xerces.xni.parser.XMLParserConfiguration=org.apache.xerces.parsers.XIncludeAwareParserConfiguration
See http://xerces.apache.org/xerces2-j/faq-xni.html#faq-2 for the technical details
And the steps it goes through to work out what default parser to use.
So if you put in the property you’ll get to step 4 without steps 2 & 3 that were the slow bit. So I think the problem was more that it was accessing LOTS of files/locations rather than just one slow one.
Now it might be that the classloader it was looking through all the packages or else it might have been some critical point with patches/jars and the like or maybe some interaction with tomcat in there… Point is that this eliminates the problem altogether anyhow.
So without this property set you will get a slow down in WSDL generation over time up until you reach a point where it becomes noticeable or impacts web service consumer services (with 8.2 mode on) as well.
Hope that helps. It was a pretty rough problem to have: an integration layer that couldn’t do web services.
#webMethods#API-Management#soa