File metro-default.xml not found on Weblogic 12.1.3
After upgrading from WebLogic 12.1.2 to 12.1.3 several of our JAX-WS enabled apps broke with the following message:
“Default configuration file [ metro-default.xml ] was not found”.
Alrighty then, so off to support.oracle.com we go. Registered a SR to which I got a reply in an instant:
This is very likely Bug 18416897 : MASM0001: DEFAULT CONFIGURATION FILE [ METRO-DEFAULT.XML ] WAS NOT FOUND
Fixed in version 12.1.4, unfortunately there is no other solution for 12.1.3 </i>
To keep the story short I used trial and error and a littel bit of help from god and ended up with the following file which will solve the problem in a
metro-default.xml
<?xml version="1.0" encoding="UTF-8"?>
<metro xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xmlns='http://java.sun.com/xml/ns/metro/config'
version="1.0">
<tubelines default="#default-metro-tubeline">
<tubeline name="default-metro-tubeline">
<client-side>
<tube-factory className="com.sun.xml.ws.assembler.jaxws.TerminalTubeFactory" />
<tube-factory className="com.sun.xml.ws.assembler.jaxws.HandlerTubeFactory" />
<tube-factory className="com.sun.xml.ws.assembler.jaxws.ValidationTubeFactory" />
<tube-factory className="com.sun.xml.ws.assembler.jaxws.MustUnderstandTubeFactory" />
<tube-factory className="com.sun.xml.ws.assembler.jaxws.MonitoringTubeFactory" />
<tube-factory className="com.sun.xml.ws.assembler.jaxws.AddressingTubeFactory" />
<tube-factory className="com.sun.xml.ws.rx.rm.runtime.RmTubeFactory" />
<tube-factory className="com.sun.xml.ws.dump.MessageDumpingTubeFactory" />
<tube-factory className="com.sun.xml.ws.assembler.jaxws.TransportTubeFactory" />
</client-side>
<endpoint-side>
<tube-factory className="com.sun.xml.ws.assembler.jaxws.TransportTubeFactory" />
<tube-factory className="com.sun.xml.ws.dump.MessageDumpingTubeFactory" />
<tube-factory className="com.sun.xml.ws.assembler.jaxws.AddressingTubeFactory" />
<tube-factory className="com.sun.xml.ws.rx.rm.runtime.RmTubeFactory" />
<tube-factory className="com.sun.xml.ws.assembler.jaxws.MonitoringTubeFactory" />
<tube-factory className="com.sun.xml.ws.assembler.jaxws.MustUnderstandTubeFactory" />
<tube-factory className="com.sun.xml.ws.assembler.jaxws.HandlerTubeFactory" />
<tube-factory className="com.sun.xml.ws.assembler.jaxws.ValidationTubeFactory" />
<tube-factory className="com.sun.xml.ws.assembler.jaxws.TerminalTubeFactory" />
</endpoint-side>
</tubeline>
</tubelines>
</metro>
I know there are some other workarounds out there but then you’ll have to configure classloader filtering and other painful stuff.