I think you can try to mess up with servicemix message mapper (org/apache/ode/jbi/msgmap/ServiceMixMapper.java). You can switch it to your class in ode-jbi.properties.
2009/2/6 Ford, Mark <[email protected]>: > My workaround for this is to introduce a saxon proxy for all of the partner > links that might result in a fault. I'd prefer some declarative way of > handling this in ODE but it's very easy to implement and I assume very low > cost since I only need to do transforms when a fault is thrown. > > > On 2/4/09 5:45 PM, "Ford, Mark" <[email protected]> wrote: > > I've run into an issue where a SOAP:Fault with multiple detail elements is > causing the fault handling in my process to fail. This looks like a > servicemix issue more than an ODE issue but I'm curious how other developers > are dealing with it. > > ODE correctly matches the fault to the intended catch element. This catch is > defined with the appropriate fault WSDL message and name. The problem arises > when trying to copy values from this fault variable since the underlying XML > doesn't match the definition of the variable. > > For example: > > <multiple-details> > <ns1:myFault>...</ns1:myFault> > <ns2:exceptionName/> > <ns2:hostname/> > </multiple-details> > > Vs > > <ns1:myFault>...</ns1:myFault> > > If I tweak the service I'm invoking to reply with a single detail then > everything works fine. I won't always be in control of the services I'm > invoking so it's possible I could run into this issue in the future if I end > up invoking other axis services. > > Is there a way to have ODE automatically unwrap this fault for me so I don't > have to deal with the multiple-details element? The fact that the correct > catch block executed indicates that ODE is somehow accounting for this > multiple-details element within the fault matching logic so perhaps there's a > way to have it unwrap it and discard all but the first detail. > > -- > Mark Ford > MIT Lincoln Laboratory > 244 Wood Street > Lexington MA 02420 > (781) 981-1843 > -- RafaĆ Rusin www.mimuw.edu.pl/~rrusin
